Хранение ваших включаемых файлов вне каталога, доступного через Интернет, упоминалось несколько раз и, безусловно, является хорошей стратегией, где это возможно. Тем не менее, еще один вариант, который я еще не видел, был упомянут: убедитесь, что ваши включаемые файлы не содержат исполняемый код . Если ваши включаемые файлы просто определяют функции и классы и не имеют никакого другого кода, они просто создадут пустую страницу при прямом доступе.
Любой способ разрешить прямой доступ к этому файлу из браузера: он ничего не сделает . Он определяет некоторые функции, но ни одна из них не вызывается, поэтому ни одна из них не запускается.
<?php
function a() {
// function body
}
function b() {
// function body
}
То же самое относится к файлам, которые содержат только классы PHP и ничего больше.
По-прежнему рекомендуется хранить файлы вне веб-каталога, где это возможно.
- Вы можете случайно деактивировать PHP, и в этом случае ваш сервер может отправлять содержимое файлов PHP в браузер вместо того, чтобы запускать PHP и отправлять результат. Это может привести к утечке кода (включая пароли базы данных, ключи API и т. Д.).
- Файлы в веб-каталоге сидят на корточках на URL-адресах, которые вы можете использовать для своего приложения. Я работаю с CMS, у которой не может быть страницы с именем
system
, потому что это будет конфликтовать с путем, используемым для кода. Я нахожу это раздражающим.