Внедрение нулевого байта еще в PHP7?

Мне интересно, если Null Byte Injection по-прежнему является проблемой в PHP7?

Если в PHP7 можно использовать нулевое внедрение байтов, то как я могу предотвратить это?

Благодарю.

0

Решение

Я не совсем уверен, все ли связанные функции были исправлены в 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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]