Soniks, я бы от себя порекомендовал сделать небольшую перестановку в этом коде, а именно:
PHP код:
if (!ini_get('register_globals')) {
extract($_POST, EXTR_SKIP);
extract($_GET, EXTR_SKIP);
extract($_COOKIE, EXTR_SKIP);
}
А перед ним вставить вот такой код:
PHP код:
foreach ($_COOKIE AS $c_key => $c_val)
{
if (isset($_POST[$c_key]) OR isset($_GET[$c_key])) unset($_COOKIE[$c_key]);
}
Теперь поясню, чем чревато невыполнение этой маленькой просьбы.
Переменные cookie вообще не подлежат никакой проверке в Нюке и (мною было только что проверено!!!) хакер может сформировать определенным образом эти самые куки и выполнить произвольный SQL-запрос в БД жертвы.
В связи с этим предлагаю уничтожать все переменные, содержащиеся одновременно в cookie и передаваемые в post/get запросе, отдавая при этом приоритет post/get, т. к. они проходят проверку.
PS
Уязвимость актуальна только при отключенном параметре magic_quotes_gpc
PPS
Найдено мною только что.