Скажите, что у вас есть файл myfile.php
, который выполняет некоторый код PHP. Может ли этот файл каким-либо образом (любым возможным способом) выполнить, если он был назван myfile.php.xx
, где xx
- любые символы? Как насчет myfile.phpxx
? Как насчет других типов исполняемых файлов в одной и той же ситуации (.pl, .exe, .dll и т. Д.)?Может ли PHP-файл с расширением .php.xx исполняться как PHP?
Я работаю над брандмауэром, используя регулярные выражения для проверки имен файлов для этих типов файлов. Достаточно ли просто проверить конец файла для .php, .exe и т. Д., Или проверить, что происходит после него?
Могу ли я спросить, какой именно брандмауэр? Исходящий? Входящие? Что он должен защищать, веб-сервер? – deceze 2010-12-01 06:35:01
Это невозможно. Расширение файла ничего не значит; вы можете переименовать файл .exe во все, что захотите, и вы можете сказать веб-серверу, что вы хотите интерпретировать любой файл вообще как PHP. – 2010-12-01 06:36:22