защита PHP файлов

Тема в разделе "Как сделать...", создана пользователем SPoX, 19 апр 2015.

  1. SPoX

    SPoX

    Регистр.:
    19 апр 2014
    Сообщения:
    180
    Симпатии:
    24
    привет всем
    я в PHP не очень разбираюсь но в целом какой то принцип понимаю

    и так у меня стоит OxyClassifieds 8.4 и работает прекрасно но хотелось бы защищать PHP файли

    сейчас когда в браузере заходишь прямо по ссылке на пример http://mysite.ru/classes/mysql.php
    открывается белая страница а хотелось бы так как в DLE чтобы показало Hacking attempt

    я посмотрел в DLE и там во всех файлах есть такая строка
    Код:
    if (! defined ( 'DATALIFEENGINE' )) {
        die ( "Hacking attempt!" );
    }
    этот код определяет по-моему что если файла вызывает двиг работает а есди в браузере заходишь прямо по ссылке пишет Hacking attempt

    надеюсь с моими знаниями более понятнее объяснил
     
  2. Цукер

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    414
    Симпатии:
    375
    Чтобы так сделать надо обьявить константу, где нить в конфиге или файле который по любому везде вызываеться
    PHP:
    define("CONSTANT""ЗНАЧЕНИЕ КОНСТАНТЫ");
    а далее как и в примере выше :

    PHP:
    if (! defined 'CONSTANT' )) {
        die ( 
    "Hacking attempt!" );
    }
     
    Последнее редактирование: 19 апр 2015
    SPoX нравится это.
  3. SPoX

    SPoX

    Регистр.:
    19 апр 2014
    Сообщения:
    180
    Симпатии:
    24
    Цукер,
    ага огромное спасибо

    один вопрос: ЗНАЧЕНИЕ КОНСТАНТЫ что вместо этого надо написать?

    вот триал версия может посоветуешь куда поставить
    http://www68.zippyshare.com/v/Uenv2BSR/file.html

    да и еще один вопрос
    Код:
    if (! defined ( 'CONSTANT' )) {
    die ( "Hacking attempt!" );
    }
    этот код надо поставить во всех файлах да?

    и еше этот метод надежный? или же есть что-то более надежный чем этот метод?
     
    Последнее редактирование: 19 апр 2015
  4. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.547
    Симпатии:
    1.418
    Закрой через htaccess или правила nginx всю папку, вероятнее всего там вообще нечего делать пользователям

    Если твой файл содержит только классы, то нет смысла его нагружать дополнительными проверками. Такой код можно запустить только из другого php скрипта на твоём сервере
    Пример:
    PHP:
    <?php
    class mysql extended xxx {
     ... 
    //тут какие-то методы
    }

    ?>
     
    Цукер нравится это.
  5. Цукер

    Цукер Сам себе призедент

    Moderator
    Регистр.:
    5 мар 2008
    Сообщения:
    414
    Симпатии:
    375
    1. Значние константы любое ставь какой хочеш ты его не проверяеш, ты проверяеш есть ли такая константа.
    2. Да этот код надо ставить везде чтобы оно проверяло.
    3. Где ставить хз, надо сильно двиг лопатить в Индексе поставь
    4. Ето надежно только от уявимостей в самом движке, чтобы файл не грузил тебе сервер когда его отдельно вызывают, или не передавал параметры левые