Время от времени я сталкивался со следующим фрагментом в темах:
if ( ! defined('ABSPATH')) exit('restricted access');
Это начало некоторых (всех?) PHP-файлов в теме, и оно должно предотвратить прямой доступ к файлу из-за гнусных источников.
Я вижу, что это не входит в Twenty Ten или Eleven, и я никогда не видел его рекомендованным в официальной документации WordPress. Это кажется хорошей идеей для меня, но я также не знаю достаточно о безопасности, чтобы судить об этом и не могу найти много с Google.
Это то, что я должен иметь в моих пользовательских темах? Если так, должно ли это быть во всех файлах PHP или только некоторых?
theme-development
security
mrwweb
источник
источник
defined('ABSPATH') OR exit;
defined('WPINC') ? : die();
PОтветы:
Обычно вам это не нужно. Но ... есть по крайней мере один крайний случай:
on
,… Злоумышленник может вызвать этот файл, установить отсутствующие переменные с помощью
GET
илиPOST
и заставить файл темы распечатать их. И тогда это проблема безопасности.Итак ... лучший вариант - это не проверка контекста, как в вашем примере, а хороший код: избегайте глобальных переменных, проверяйте их содержимое, прежде чем распечатывать.
В некоторых случаях я добавляю проверку контекста, когда думаю, что кто-то другой будет использовать мой код и изменяет его без учета безопасности. Это не больно.
источник