Я 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
Эти слэши используются только при транспортировке. По этому я всегда и говорю - экранировать нужно не где попало, а прям в запросе. Иначе возможна многоступенчатая инъекция, когда данные попадают в запрос из базы.
Эти слэши используются только при транспортировке. По этому я всегда и говорю - экранировать нужно не где попало, а прям в запросе. Иначе возможна многоступенчатая инъекция, когда данные попадают в запрос из базы.
Спустя 2 минуты, 48 секунд (19.11.2010 - 16:31) sharki написал(а):
Т.е в базе может лежать что угодно, хоть сама инъекция, но при её выборки этого поля нужно и применить защиту, чтобы она не вывелась на ружу?
Спустя 21 минута, 38 секунд (19.11.2010 - 16:52) sharki написал(а):
Вопросы отпали при прочтении статьи о безопасности сайтов от TWIN'a