Мне интересно узнать о безопасности PHP на веб-странице HTML, где встроен PHP-код (веб-страница, которая существует на сервере как «webpage.php») или на скрипт PHP, на который может ссылаться HTML-страница (то есть, скрипт PHP, который на самом деле не является частью веб-страницы, которая существует на сервере как «something.php» и ссылается на «webpage.html»). Допустим, что если исходный код моего PHP-скрипта известен кому-то, это будет очень большой проблемой. Я знаю, что когда вы просматриваете источник страницы PHP в браузере, PHP-скрипт не отображается, но что, если PHP-сервер потерпел неудачу и HTML все еще загружен (возможно, это возможно), сможет ли пользователь увидеть PHP скрипт? Чтобы быть более общим, существует ли какой-либо возможный способ доступа пользователя к сценарию PHP из веб-браузера, и если да, то как я могу его предотвратить?
что, если PHP-сервер потерпел неудачу и HTML все еще загружен (возможно ли это), сможет ли пользователь увидеть скрипт PHP?
Отверстия безопасности в стороне, это обычно происходит, когда кто-то возится с сервером или переносит сайт на серверы и файлы PHP, выгружается в папку, которая не настроена на выполнение PHP. Это цена, которую вы платите за развертывание PHP, так же просто, как удаление файлов в папку.
Хотя это никогда не идеально для утечки источника PHP, вы можете смягчить ситуацию, поставив всю вашу конфиденциальную информацию о развертывании (например, пароли базы данных) в файл include PHP, который живет за пределами веб-корня (папка, сопоставленная с URL-адресом, часто называемым htdocs
). Гораздо сложнее испортить конфигурацию, чтобы пропустить это.
(Для более крупных, более модульных проектов, которые вы, как правило, выполняете большую часть своей обработки, включите в любом случае.)
Одна простая вещь, которую вы можете сделать для защиты от простой конфигурации сервера, – это иметь файл HTML, содержащий файл PHP, который находится за пределами корня документа (на уровне или выше уровня корня документа, обычно «htdocs»). Таким образом, если бы была короткая неправильная конфигурация, которую получил пользователь, это был бы путь к включенному файлу, но они не смогли бы загрузить этот включенный файл непосредственно в свой браузер.