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

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

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

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

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

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

28 голосов | спросил mrwweb 25 AM00000020000004631 2012, 02:47:46

1 ответ


24

Обычно вам это не нужно. Но существует, по крайней мере, один краевой случай:

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

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

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

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

ответил fuxia 25 AM00000040000002131 2012, 04:35:21

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132