Показать сообщение отдельно

  #181  
Старый 07.11.2009, 18:37
(Dm)
Reservists Of Antichat - Level 6
Регистрация: 08.04.2008
Сообщений: 286
С нами: 9521666

Репутация: 1695
По умолчанию

Вот задачка от меня, найдите уязвимость в коде.
Структура БД:
Цитата:
CREATE TABLE stats (id int unsigned not null PRIMARY KEY AUTO_INCREMENT, useragent varchar(255), ip varchar(16), referer varchar(255));
PHP код:
<?php

mysql_connect
('localhost''root''secretpassword');
mysql_select_db('antichat');

//Обработка переменных
function Sanitize($data_to_sanitize) {
    
$data_to_sanitize addslashes($data_to_sanitize);
    
$data_to_sanitize htmlspecialchars($data_to_sanitize);
    return 
$data_to_sanitize;
}


function 
Sanitize_Array($value) {
    
$value is_array($value) ? array_map('Sanitize_Array'$value) : Sanitize($value);
    return 
$value;
}

$_SERVER  array_map('Sanitize_Array'$_SERVER);

$sql "INSERT INTO stats (ip, useragent, referer)
        VALUES ('"
.substr($_SERVER['REMOTE_ADDR'],0,16)."', '".substr($_SERVER['HTTP_USER_AGENT'],0,255)."', '".substr($_SERVER['HTTP_REFERER'],0,255)."')";

mysql_query($sql);
mysql_close();

?>
 
Ответить с цитированием