1. PHP / Говнокод #12549

    +100

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    <?php
    /*
    Все очень просто. Создаем файл.
    Например login.php (что бы никто не догадался=) )
    И записываем в него несколько функций
    */
    function echoJavaScript($str)
    {
     echo " <script type=\"text/javascript\">
            <!--
            window.alert(\"$str\");
            //-->
            </script>";
    }
    function JavaScript_href()
    {
    echo " <script type=\"text/javascript\">
          <!--
          location.href = '/';
          //-->
          </script>";
    }
    ?>
    
    
    <?php
    /*Создаем еще один файл, где эти функции мы будем вызывать
     Ну, например, у вас имеются на сайте скрипты,
     доступные только зарегистрированным пользователям
     Получив отрицательный результат проверки юзера,
     Вы вызываете эти функции, не забыл, естественно,
     предварительно подключить нужный файл
    */
    include("login.php");
    #Вначале популярно объясняем что к чему
    echoJavaScript('Вы не имеете прав доступа к этой странице.');
    #А потом перенаправляем на главную страницу
    JavaScript_href();
    
    ?>

    Прячем JavaScript от пользователя.

    Запостил: superfood, 07 Февраля 2013

    Комментарии (46) RSS

    • Стырил туту http://faqonline.org/faqs/php/raznoe/pryachem_javascript_ot_polzovatelya.php
      Ответить
    • серьезные вещи парень пишет на сайте
      Ответить
      • А ещё он юморист круче самого Ваганыча.
        http://faqonline.org/blog/umor_shytki_i_ponti/
        Ответить
        • и не говори - какой юмористический талант пропадает, а он все на какой-то php и js тратит время
          Ответить
          • Ну особо он на них и не тратится.
            Ответить
            • Чят:
              > Спасибо, я рад Мне подсунули хрень. Ну ка глянь http://faqonline.org/blog/umor_shytki_i_ponti/konec__sveta.php
              Ответить
            • ну судя по качеству скриптов, действительно не тратися
              Ответить
    • полное говно)
      Ответить
    • Реальное гавно, чувак отжигает не по детки..
      Ответить
    • Всем привет. Не нравится мой гавнокод? А мне кажется, что гавнокод как гавнокод... не хуже любого другого:) Кстати, он неплохо работает и я его использую у себя в скриптах на сайте. ЫЫЫ. Вот так, ребята)))
      SSV. Автор.
      Ответить
      • >Не нравится мой гавнокод?
        +9.
        Возможно я ошибаюсь (не голосовал), но судя по оценке всё обстоит ровно наоборот. Не хуйже чем у других - точно.
        Конкуренцию составить может разве что webKill.
        Ответить
        • webKill завязал http://www.youtube.com/watch?v=cfkNviHMRx4
          Ответить
          • Боже мой. Чем его вылечили?
            Ответить
            • Юношеский максимализм (акцентуация личности) - явление не продолжительное.
              Ответить
      • Ты лгун! Это я автор.
        Ответить
        • Я делал так еще до того, как это стало мэйнстримом. /* Завернулся в теплый ламповый клечатый хипстерский шарф */
          Ответить
      • Сама идея, спрятать JavaScript, абсурдна.
        Ответить
        • Security by obscurity - это культ карго. Печально, что такой подход используют не только пхпшники, но Ъ-ынтырпрайс
          Ответить
          • Да нет тут никакой "обскьюрити". Код-то видно будет.
            Ответить
    • показать все, что скрытоА я про вас, ребята, статью начал писать. Но вот чего-то не хватает, а чего не пойму. Пока выложил во временной папке. http://faqonline.org/faqs/temp/govnokod.php
      Ответить
      • >чего-то не хватает
        Грамотности?
        Ответить
      • > Неважен результат. Интересен сам процесс.
        До какого-то момента все так думают... пока программируют для души и для интереса. А потом начинается работа. Мало получить удовольствие от процесса, мало получить результат. В большинстве случаев программу придется еще и поддерживать, дополнять, исправлять...

        Что же такое говнокод, спросите вы
        - Велосипеды - они конечно хороши для самоообразования, но в продакшене это пустая трата времени как того, кто писал код, так и тех, кто потом будет его читать.
        - Чрезжопно отформатированный код (тот самый hello world в одну строку, который вы почему-то считаете нормальным). Правильно отформатированный код читается по диагонали, в нем сразу видны мысли автора. А говно, написанное ровным столбиком без отступов, или вообще в одну строку - пустая трата времени читателя.
        - Нехорошие приемы типа начинения кода безымянными магическими константами, функций по 1000 строк, десятков вложенных условий и циклов, излишние goto, полное отсутствие комментариев...
        - Просто неправильный код, который вполне работает на контрольном примере, но игнорирующий явные косяки, которые потом обязательно вылезут у пользователя.
        - Байтоёбство и микрооптимизации без веской на то причины, когда вместо пары строк понятного кода городят 50, оправдывая это тем, что "так быстрее работает", но даже не пытались оценить, как часто будет работать эта функция.
        - Кривая архитектура, из-за которой рано или поздно возникает точка, после которой надо или переписывать все заново, или проект придется подпирать костылями обмазанными говнокодом.
        Ответить
        • показать все, что скрытоМожет быть Вы и в чем то правы, но выражения "говнокод" и "быдлокодер" я никогда не буду воспринимать всерьез. Уверен, что ты тоже не сразу "пошел", а некоторое время ползал и какал в подгузники.
          Ответить
          • Он-то, конечно, ползал, но я уверен, что он не размазывал своё говно и сопли по всей сети.
            Да, все мы учимся, совершаем ошибки: сначала глупые, позже - редкие и далеко не очевидные, но что бы научиться жарить код, нужно не только уметь набирать текст, но и читать книжки и слушать критику. Книги вы презираете, говорите, что они для унылых теоретиков, критику воспринимать отказываетесь, ведь она оказывается её тоже унылые теоретики пишут, вот и превращается ваше обучение в долбёжку текстового редактора и повторения мантры "похуй, как хочу, так и пейшу". На выходе получаем новую обезьяну с уникальной коллекцией принципиально-новых велосипедов.
            Вы уж определитесь: вам учиться или самоутверждаться.
            Ответить
            • >Книги вы презираете, говорите, что они для унылых теоретиков
              Я такое говорил? Что-то не припомню. Я говорил, что не всегда то, что написано в книгах следует считать за панацею. А книги я люблю, как вам может это и показаться странным. Люблю, но не всегда доверяю. Их писали такие же люди, а людям, как известно, свойственно ошибаться. Это раз. А два - это то, что сегодня верно, завтра уже будет анахронизмом.
              Ответить
              • Без комментариев.
                Удалить ненужные символы (ereg_replace)
                http://faqonline.org/faqs/php/obrabotka_strok/ydalit_nenyjnie_simvoli_ereg_replace.php
                http://php.net/manual/ru/function.ereg-replace.php
                Ответить
              • > Люблю, но не всегда доверяю.
                Ну, на самом деле, даже немного устаревшим книгам серьезных авторов стоит доверять больше, чем неизвестным сайтам\блогам в интернете. Все-таки у них и опыта побольше, и ошибки они совершают реже чем среднестатистический блогописец. Так что люди то они люди, но не совсем такие же.

                Насчет экспериментов - не все можно проверить экспериментально, поверьте ;) Ту же работу с потоками лучше изучать по хорошей книге. Многие проблемы с ними возникают с очень маленькой вероятностью, на тестировании их легко пропустить. А самому догадаться не всегда удастся. Зато в продакшене все эти косяки будут вылазить 1-2 раза в год...

                P.S. Говно типа "с++ за 14 дней" и "делфи для чайников" литературой не считаю.
                Ответить
                • Алгоритм+псевдокод за две недели не освоить, не то что язык, тем более с нуля.
                  Ответить
            • В народе это именуется - ламер.
              А мне кажется, что все-таки резонер, стремление которого иметь обо всем свое суждение, которое ведет к грубейшим ошибкам, к высказыванию в качестве истин нелепых сентенций, имеющих в основе игнорирование элементарных логических требований.
              Не?
              Ответить
          • понимаешь в чем дело
            когда человек делает ошибки просто от недостатка опыта - это совсем не так смешно
            смешнее, когда он уже считает себя проффессионналом, считает себя вправе давать другим советы
            но у тебя нестандартная ситуация, обычно, вторая стадия - считать всех вокруг себя говнобыдлокодерами
            но если ты такой взрослый, то вполне найдешь в себе силы спросить у публики, в чем же конкретно ты облажался, почему гений был не понят
            Ответить
          • Совершенно верно, это не говнокод и не быдлокод - это Индусский код.
            Ответить
      • Вы спросите, а чем же плох говнокод? А зло говнокода в трате самого ценного, что у нас есть - времени. И, прежде чем написать очередной говнокод, программист должен подумать о времени, которое потратит читающий этот код, в конце-концов о своем времени, ведь через полгода-год ему скорее всего самому придется копаться в своем говне коде...

        > Мне не нравятся люди, которые сами ничего не делая, оскорбляют других.
        Вы считаете, что здесь собрались ничего не делающие диванные теоретики? Чтож, ваше право, ваше право...
        Ответить
    • Мне кажется, что автора этой белиберды, нужно срочно познакомить с мишустиным. Ещё и тёзки
      Ответить
      • Я, superfood, находясь в здравом уме и твердой памяти, торжественно заявляю:
        Не буди лихо...
        Ответить
    • Есть три способа подключения ява-скрипта, а я показал четвертый. Хорош, он или плох... время рассудит. Главное, что он работает. Вот что важно. Даже подключая файл с расширением *.js всегда можно перейдя по ссылке просмотреть его. А подключаемый файл пыха не видит никто. Можно потом только увидеть результат выполнения, если нужные условия в скрипте будут собраны. Зря я походу время трачу, что-то объясняя тем, кто заранее настроен на негатив. Ну конечно же... для вас это говнокод и в ваши закостенелые мозги уже не изменить.
      Всем привет. SSV
      Ответить
      • Ну собственно security by obscurity в действии. Что такое у вас там в js, что вы так хотите скрыть это от глаз юзера? Именно сам факт того, что в js (один хрен исполняемом на клиенте) лежит что-то такое, что нужно прятать от юзера и заставляет мои закостенелые мозги усомниться в полезности (и безопасности!) этого кода.

        Ну а если это не является "средством обеспечения безопасности" - тогда это самый обычный способ генерации js из пыхи, часто применяемый, и имеющий право на жизнь.

        P.S. Было бы интересно услышать, что вам так хочется спрятать от юзера. Явно не ссылку на корень сайта же, и не сообщение о том что у юзера нет доступа...
        Ответить
      • P.S. Подобная технология, конечно, сойдет для собственного сайта, который уникален, и исходный код которого никому и никогда не будет передаваться. И она без проблем будет там работать. Но, если открыть исходники, или же продать кому-то движок сайта - вся эта security by obscurity улетит в трубу...

        Поэтому мне (и, видимо, всем плюсовавшим данный код) не нравится такой подход про "недоступные зарегистрированным пользователям скрипты", и в этом нет ничего личного, просто печальный опыт, накопленный работой с подобными "решениями".
        Ответить
        • >Подобная технология, конечно, сойдет для собственного сайта, который уникален, и исходный код которого никому и никогда не будет передаваться.
          его может же передать любой зарегистрированный клиент. Или все клиенты должны подписывать анальное NDA?
          Ответить
          • > его может же передать любой зарегистрированный клиент.
            Ну а вдруг он прячет скрипты от админки сайта, доступные только ему самому? Я, честно говоря, вообще не понимаю, что за js он прячет от незареганных, и самое главное зачем ;(

            >Или все клиенты должны подписывать анальное NDA?
            Ну а чем не вариант? Просто еще одна строчка в соглашении.
            Ответить
      • > А подключаемый файл пыха не видит никто
        Страус-невидимка?
        Ответить
    • "Прячем JS" http://tinyurl.com/d2y87ws
      Ответить
      • Compressor
        Код раз в 5 больше стал после компрессии... Или для бОльших js'ок он эффективней?
        Ответить
        • Да, чем больше скрипт, тем эффективнее сжатие http://clip2net.com/s/2PxX6
          Ответить

    Добавить комментарий