[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не срабатывает защита О_о
sharki
Всем привет, щас решил проверить защиту нового модуля но она не срабатывает, вс пропускает.

Я ajax'ом отправляю данные с блокнота

function editN() {
var hash = '<? echo sha1($_SESSION['user_id']);?>';
var user = '<? echo $_SESSION['user_id']; ?>';
$.ajax({
type: "POST",
url: "/ajax/enotes.php",
data: ({id : user, hash: hash, text: $("#textarea").val()}),
success: function(data){
if(data == true) {
$('#dialog').fadeOut('slow');
}
}
}
);
}


файл принимает их и вызывает там функцию


edit_notes ($_POST['id'],$_POST['hash'],$_POST['text']);


Она обрабатывает данные и выдает True или false,
Но я доупстим отправил кавычки, многоооо ковычек, смотрю в базу а они там не экранированны как так?


function edit_notes ($id,$hash,$text) {

if (isset($id) and isset($hash) and isset($text)) {
$id = (int)$id;
$hid = sha1($id);
if ($hid==$hash) {
$text = mysql_real_escape_string($text);
// addslashes() тоже не работает

$sql = "UPDATE cabinet
SET notepad = '"
.$text."'
WHERE id_user = '"
.$id."' ";
$result = db_select($sql);

if($result) {
return true;
}
else {
return false;
}
}
}
}




Спустя 42 минуты, 25 секунд (19.11.2010 - 16:25) SlavaFr написал(а):
Цитата (sharki @ 19.11.2010 - 12:43)
смотрю в базу а они там не экранированны как так?

так база тебе их не экранированными и должна показывать. Если ты конично select имееш в виду.

Спустя 2 минуты, 3 секунды (19.11.2010 - 16:27) sharki написал(а):
База должна показывать все что в неё поступает..я захожу в пыхадмин, там смотрю таблицу и в нужном поле все символы не экранированные, хоть и перед отправкой я их экранировал (пытался)

Спустя 27 секунд (19.11.2010 - 16:28) twin написал(а):
А зачем тебе в базе экраны? Ты плохо думаешь о PHP smile.gif
Эти слэши используются только при транспортировке. По этому я всегда и говорю - экранировать нужно не где попало, а прям в запросе. Иначе возможна многоступенчатая инъекция, когда данные попадают в запрос из базы.

Спустя 2 минуты, 48 секунд (19.11.2010 - 16:31) sharki написал(а):
Т.е в базе может лежать что угодно, хоть сама инъекция, но при её выборки этого поля нужно и применить защиту, чтобы она не вывелась на ружу?

Спустя 21 минута, 38 секунд (19.11.2010 - 16:52) sharki написал(а):
Вопросы отпали при прочтении статьи о безопасности сайтов от TWIN'a
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.