Xwab
Форумыnavigate_nextПрограммирование на PHP

Опасность ' и "
Сообщения
Replikon

В чем опасность кавычек в MySQL запросах?

16 Июн 2010, 13:01
suhonok

Replikon, двойный не экраниируют строку

16 Июн 2010, 13:07
Replikon

suhonok, ? Что?

16 Июн 2010, 13:07
Akdmeh

Смотри.
Есть запрос.
$name=$_GET['name'];
mysql_query("SELECT * FROM `table` WHERE `name`='$name'");
теперь в $name подставим
"' UNION DROP TABLE `table`/*"
в результате будет исполнен запрос:
"SELECT * FROM `table` WHERE `name`='$name' UNION DROP TABLE `table`/*'"
понимаешь

16 Июн 2010, 13:27
suhonok

Replikon, а ты строку когда нибудь без ' ' записывал? Нет? Попробуй

16 Июн 2010, 13:31
Replikon

Akdmeh, понятно.

16 Июн 2010, 14:13
Replikon

И еще вопросец, чтобы не создавать новую тему. Я вот обработал сроку сначала htmlspecialchars (), а потом mysql_real_escape_string (). И откуда-то перед кавычками появились 2 слеша. Откуда 2? Должен вроде быть 1.

16 Июн 2010, 14:22
wapmorgan

У тебя все входящие данные (гет, пост, куки) автоматически экранируются.
В Htacces напиши php_flag magic_quotes_gpc off

16 Июн 2010, 14:27
Replikon

Morgan, спасибо, теперь все нормально.

16 Июн 2010, 14:47
Febian

Replikon, в базе данные должны храниться в том виде, в котором поступают, поэтому сначала юзай mysql_real_escape_string(), a на выходе уже htmlspecialchars()

16 Июн 2010, 17:33
Ответить на тему