Intereting Posts
Как создать класс контейнера в PHP Изменение описания метатега wordpress с использованием функций WP Что такое rich_editing? Перемещение wordpress в неизвестную розетку Можно ли показать пользовательские метаданные комментариев в панели администратора? Получение тега alt из настраиваемого поля Запретить пользователям добавлять таксономические условия Показать определенный пункт меню из wp_nav_menu на основе идентификатора Как обновить настройку темы после изменения цвета внутри wpColorPicker? Когда WordPress переключил требования на php7? Шаблон категории: необходимо отображать разные материалы на первой странице архивов. Как скрыть плагин metox для не админов, когда пользователь добавляет новое сообщение Рамки WordPress и родительские темы Получить все медиафайлы для текущего автора получение всех значений для настраиваемого ключа поля (перекрестная запись)

Стоит ли ограничивать прямой доступ к файлам тем?

Время от времени я просматривал следующий фрагмент тем:

if ( ! defined('ABSPATH')) exit('restricted access'); 

Это в начале некоторых (все?) PHP-файлов в теме, и это должно предотвращать прямой доступ к файлу с помощью гнусных источников.

Я вижу, что это не включено в двадцать десять или одиннадцать, и я никогда не видел его рекомендованным в официальной документации WordPress. Мне кажется хорошей идеей, но я также недостаточно знаю о безопасности, чтобы судить об этом и не могу найти много с Google.

Это что-то, что я должен иметь в своих пользовательских темах? Если да, то это должно быть во всех файлах PHP или только в некоторых?

Solutions Collecting From Web of "Стоит ли ограничивать прямой доступ к файлам тем?"

Обычно вам это не нужно. Но … есть хотя бы один краевой случай:

  • Если файл темы является частью шаблона,
  • и он использует глобальные переменные из вызывающего контекста (родительский файл),
  • и register_globals on ,
  • и он просто использует эти переменные без проверки безопасности …

… злоумышленник может вызвать этот файл, установить отсутствующие переменные с помощью GET или POST и заставить файл темы распечатать их. И тогда возникает проблема безопасности.

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

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