Мне интересно, если Null Byte Injection по-прежнему является проблемой в PHP7?
Если в PHP7 можно использовать нулевое внедрение байтов, то как я могу предотвратить это?
Благодарю.
Я не совсем уверен, все ли связанные функции были исправлены в PHP 7.
file_exists был исправлен наверняка.
В любом случае вы можете предотвратить это, не слепо принимая пользовательские данные, а предварительно проверив их:
<?php
$file = $_GET['file'];
// Whitelisting possible values
switch ($file) {
case 'main':
case 'foo':
case 'bar':
include '/home/wwwrun/include/'.$file.'.php';
break;
default:
include '/home/wwwrun/include/main.php';
}
?>
Для получения дополнительной информации см. http://www.php.net/manual/en/security.filesystem.nullbytes.php
Других решений пока нет …