РНР магические константы разрешить доступ к такой информации, как текущий исполняемый файл PHP, имя текущей функции и т. д.
Пока эти данные не вводятся пользователем непосредственно, это может определенно зависеть от пользовательского ввода (например: посещение определенного пути, чтобы влиять __dir__
а также __file__
и т. д.), однако в большинстве случаев удаленный пользовательский ввод не может точно влиять на эти переменные.
Например, если вы должны были посетить example.com/<script>window.alert("XSS");</script>
это не приведет к __file__
переменная на этом сервере, содержащая вредоносный JavaScript. Вместо этого он будет содержать путь вашего 404 ErrorDocument (при условии, что пример XSS не был реальным путем на вашем сервере).
Какие еще есть способы, которыми вредоносные данные могут попасть в эти переменные?
Есть ли какие-то другие соображения безопасности, которые я пропустил, связанные с магическими константами PHP?
Для контекста речь идет о сервере Apache, обслуживающем статические страницы PHP, на сайте нет дополнительного пользовательского ввода (например, формы, загрузка файлов, файлы cookie и т. Д.).
Там нет никаких угроз безопасности. Эти константы извлекаются из данных сервера (т. Е. Вашего пути к файлу PHP). Они не могут контролироваться конечным пользователем.
Других решений пока нет …