К вопросу о готовности к PHP 6

Сообщение Nemezida » 17 мар 2020, 18:50

Автор: n-sw-bit
В первую очередь в ближайшей версии PHP не будет magic quotes...
Чтобы проверить свой скрипт на уязвимость в их отсутствие поставьте в начале его следующий код:
Код: Выделить всё
if(get_magic_quotes_gpc())
{
  function undo_magic_quotes_array($array)
  {
    return is_array($array) ? array_map('undo_magic_quotes_array', $array) : str_replace("\\'", "'",
                                                                                           str_replace("\\\"", "\"",
                                                                             str_replace("\\\\", "\\",
                                                                             str_replace("\\\x00", "\x00", $array))));
  }
  $_GET = undo_magic_quotes_array($_GET);
  $_POST = undo_magic_quotes_array($_POST);
  $_COOKIE = undo_magic_quotes_array($_COOKIE);
  $_FILES = undo_magic_quotes_array($_FILES);
  $_REQUEST = undo_magic_quotes_array($_REQUEST);
}

Это отключает magic quotes насильно. После проверяйте, безопасность должна полностью сохраниться.
Также этот скрипт поволяет избежать кучи проверок вида:
Код: Выделить всё
if (get_magic_quotes_gpc())

поскольку теперь переменные всегда чисты.
Добавлю, что safe_mode таке больше не будет, поэтому отключите его и проверьте степень вашей безопасности со всеми system, shellexec и т.п. Не крутится ли ваш сервак под рутом?)
Аватара пользователя
Nemezida
Администратор
Администратор
 
Сообщения: 632
Зарегистрирован: 20 сен 2019, 21:32

Вернуться в TBDeV

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1