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

    +144.5

    1. 1
    define('MYSQL_PASS', 'пароль');

    нет, ну вот прям так вот и лежит посреди кода :)

    Запостил: stereojazz, 15 Февраля 2010

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

    • Вы предлагаете передавать пароль через GET\POST-параметры или хранить в переменной, к которой можно только в определённой области видимости обращаться?
      Ответить
      • да хотя бы в конфигурационном файле.
        Ответить
        • Если вы про парсинг .ini-файла, то это православнее, согласен.
          Но, как по мне, хранить пароль от базы в константах — не есть говнокод, это даже не плохо.

          Вот если в константу записывали бы base64-ый пароль, а при применении бы раскодировали каждый раз — вот это другое дело. Вы так не считаете?
          Ответить
          • Да-да, православнее. Для обычного хостинга http://some-host.test/conf.ini отдаст пароль в чистом виде.
            Ответить
            • Для обычного хостинга сервер отдаст http://some-host.test/file.php на скачку. Понятное дело, что о безопасности нужно думать в первую очередь.

              Когда я говорил “православее”, то имел в виду, что в действительности система скриптов разделена на рабочие области, и их конфигурации выносятся отдельно в файл настроек. (Как, например, у многих десктопных программ)
              Ответить
              • Если обычный-хостинг отдает php на скачку, то это не хостинг, а narod.ru.
                Ответить
            • Вынести conf.ini за корень сайта не?
              Ответить
              • Далеко не все позволяют это делать.
                Ответить
            • http://some-site/conf.ini.php:
              ; <?php __halt_compiler(); А дальше идёт обычный ini-файл, который легко и непринуждённо парсится parse_ini_file()
              [sec1]
              hello=1
              world=2
              [sec2]
              foo=3
              bar=4
              Ответить
              • Если все равно писать тэги, то нахрена ини-файл-то ? Что запрещает $hello = 1; написать ? Или, чтоб уж совсем православно и тру-оопешно, $config->set('hello', 1); ?
                Ответить
                • Или, чтоб уж совсем просто, define('CONFIG_TEST', 1);
                  Ответить
                • > нахрена ини-файл-то ?
                  parse_ini_file() быстрее include. Можешь проверить.
                  > чтоб уж совсем православно и тру-оопешно, $config->set('hello', 1);
                  Хороший пример того, когда гонка за труЪ-ООПешностью приводит к формированию говнокода. ТруЪ-ООПе - хорошая и нужная вещь, но перегибать не надо. Вызов метода медленнее присвоения значения элементу массива.
                  Ответить
          • Немного не уловил суть. В чём будет безопаснее? Любое обратимое преобразование по определению ненадёжно. У меня есть стыренные сорцы одного говносайта, который делала местная контора говнокодеров. Толи они в свою очередь украли у кого-то, толи сами придумали, но они хранят для входа в партнёрку оптовой базы не хеш/соль, а - правильно - base64 представление строки пароля. Сильно.
            Надо будет повыдирать вкусностей и перепостить.
            Ответить
        • Ну лежит оно посреди кода, конфигурационный файл тоже будет подключаться где то посреди кода. И в чем разница?
          Ответить
        • Если конфигурационный файл - это файл синтаксиса типа .ini, то чем конкретно он лучше .php? Если нет, тогда вы что вообще имели в виду?
          Ответить
    • Приведу несколько запросов, с помощью которых хакер без труда добывает нужную информацию. Естественно, что только Google помогает ему в этом нелегком деле.

      Index.of master.passwd – поиск паролей во FreeBSD
      Index.of /admin – почувствуй себя админом!
      Index.of ws_ftp.ini – а теперь найдем конфиг для WS_FTPD
      Index.of "amount.xls" – или важную банковскую базу
      filetype:sql inurl:users – кстати, о базах...
      intitle:Usage Statistics for Generated by Webalizer – смотрим статистику
      intitle:Index of dbconvert.exe chats – а также логи ICQ-чата
      site:jp filetype:pl inurl:txt – это мы уже проходили. Special for Japan :)
      filetype:php inurl:file – поиск инклуд-файлов к PHP
      inurl:main.php Welcome to phpMyAdmin – дырявый phpMyAdmin

      хакер.ру
      Ответить
      • Если пароль лежит в инклюд-файле, который находится выше рута, или к нему запрещен доступ htdocs'ом, то никак ты его оттуда не достанешь
        Ответить
      • Это пиздец.
        Хакер жжот напалмом.

        Этому способу поиска уже 7 лет как.
        Ответить
    • хм...
      в стиле MYSQL_PASS пишу я.
      откуда ты взял мой код?

      хотя я всетаки выношу такое в конфиг-файл
      Ответить

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