Защита PHP-файла от прямого доступа - PullRequest
5 голосов
/ 15 декабря 2011

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

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

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

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

Ответы [ 4 ]

7 голосов
/ 15 декабря 2011

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

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

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

1 голос
/ 23 апреля 2012
defined('ABSPATH') or die("Cannot access pages directly.");   

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

0 голосов
/ 15 декабря 2011

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

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

0 голосов
/ 15 декабря 2011

Обычно вы не можете объявлять переменные на стороне обслуживания, поэтому это безопасно.

Скорее всего, другая страница задает эту переменную по некоторым критериям (пройти проверку, ip или все, что вы захотите)

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

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