2011-12-15 2 views
5

Я читал некоторые WordPress PHP-код на GitHub, и я обнаружил, что автор (разработчик старший WordPress) помещал эту строку кода в начале каждого файла:Защита PHP файл прямого доступа

defined('ABSPATH') or die("Cannot access pages directly."); 

Как защитить файл от прямого доступа? Не может ли хакер просто определить константу ABSPATH, а затем загрузить файл?

Кроме того, почему прямой доступ опасен?

ответ

7

Эта константа, вероятно, установлена ​​в основном PHP-файле WordPress, поэтому, если она не установлена, вы не получаете доступ к главной странице.

Constants не то, что пользователь может изменить, они находятся в коде и могут быть изменены только путем редактирования файла PHP. Итак, если хакер может установить эту константу, тогда у вас возникнут большие проблемы, потому что это потребует от него редактирования файлов PHP.

Прямой доступ не может быть опасным (не цитируйте меня), но это бессмысленно. Прямой доступ к плагину WordPress (например) ничего не сделает, поскольку плагин должен запускаться через WordPress.

0

Нормальный, вы не можете объявлять переменные со стороны стороны, чтобы он был безопасным.

Наиболее вероятно, другая страница установить эту переменную по некоторым критериям (проходят проверку, внутрибрюшинно или все, что вы хотите)

Как сказал, что страницы в одиночку не будет работать, потому что нужно прочитать эту переменную из someware (включаемый или страница включена в комплект)

0

Прямой доступ может быть опасным - поскольку хакер может разработать свою бизнес-логику и, возможно, найти пути вокруг нее (например, вещи, которые не написаны в коде, чтобы защитить себя).

Другая возможность состоит в том, что вещи, которые жестко закодированы в программу, которая может привести к прямому доступу к базам данных, получение знаний о вашей сети, и т.д ...

1
defined('ABSPATH') or die("Cannot access pages directly."); 

этой константа определена в корневых файлах, такие как index.php.
Он предназначен для проверки того, определена ли ABSPATH, чтобы этот файл был включен с корнем или другим файлом.
и не прямой доступ с URL-адресом.
Этот способ является одним из лучших способов защиты файлов от прямого доступа

Смежные вопросы