Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] передача кавычек в XmlHttpRequest

Ответить
Настройки темы
Разное - [решено] передача кавычек в XmlHttpRequest

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Через XmlHttpRequest передается GET'ом следующая строка:

var params="operation=insert&id_quest="+ <?php echo $get_id; ?> +"&question_text="+encodeURIComponent(question_text);

где параметр question_text - это текст (литиница+кирилица), который может содержать кавычки.

на сервере есть простейшая защита от инъекций:

if(isset($_GET["operation"]) && $_GET["operation"]=="insert" && isset($_GET["id_quest"]) && isset($_GET["question_text"])){


if (iconv("UTF-8","windows-1251",$_GET["question_text"]))

$text=iconv("UTF-8","windows-1251",$_GET["question_text"]);

$text=checkvar($text);

.
.
.

}


Тест функции checkvar:

function checkvar($var){

$var=addslashes($var);

$var=htmlspecialchars($var);

return $var;

}

Так вот, при передаче текста, содержащего двойные кавычки, строка сохраняется в базе со слешами. Если передавать одинарные кавычки, то тест вообще обрезается до первой кавычки. Собственно, вопрос в том как передавать произвольный текст, что бы еще и защитится от инъекций. Поделитесь опытом с новичком, пожалуйста.

Отправлено: 20:07, 25-01-2009

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


передавайте кавычки через \" - тогда будут передаваться.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)


Отправлено: 02:03, 26-01-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Да хоть даже в Base64 кодировать, а потом перед проверкой декодировать.

Отправлено: 08:11, 26-01-2009 | #3


Deadooshka


Сообщения: 2512
Благодарности: 690

Профиль | Отправить PM | Цитировать


не мудрите, есть спец. функция mysql_real_escape_string($string) - используйте ее непосредственно в запросе...
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:29, 26-01-2009 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] передача кавычек в XmlHttpRequest

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Добавление двойных кавычек в путь к файлу Karat19 AutoIt 6 04-11-2009 11:45
[решено] XMLHttpRequest параметры GET/POST rus-4-ever Вебмастеру 5 19-04-2008 20:28
Использование - [решено] Передача лицензий. Sadhu Лицензирование продуктов Microsoft 1 29-10-2007 17:39
[решено] Передача прав использования лицензий infbiz Лицензирование продуктов Microsoft 2 01-06-2007 12:29
Как уйти от ввода двух кавычек '' или ^^ при наборе текста? bvn123 Хочу все знать 2 28-09-2004 02:53




 
Переход