parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Про апострофы, а точнее про тайнтинг.

R. Averkov 14.11.2003 14:47

Недавно я спрашивал про них спрашивал: http://parser.ru/forum/?id
Проблема была в том, что апостроф, находящийся в форме, вызывал ошибку MySQL. После ломания головы, обозначилось два половинчатых варианта.

Полувариант 1
Апостроф нормально добавляется в базу, но все теги, пришедшие из формы, оказываются в базе в виде тегов, а не < и пр.
$body[$form:body]

$tbody[^taint[html][$body]]
$tbody[^tbody.match[\[([b])\](.+?)\[/\1\]][gi]{<$match.1>$match.2</$match.1>}]
#здесь еще несколько преобразований, в которых вручную тайнтинг не используется.

$modbody[^untaint[html]{$tbody}]

^connect[$SQL.connect-string]{
^void:sql{INSERT into live (body) values('^taint[sql][$modbody]')}
}
Полувариант 2
Все теги, пришедшие из формы, преобразовались в &lt; и пр., но при наличии апострофа, MySQL выдает ошибку.
$body[$form:body]

$tbody[^taint[html][$body]]
$tbody[^tbody.match[\[([b])\](.+?)\[/\1\]][gi]{<$match.1>$match.2</$match.1>}]
#здесь еще несколько преобразований, в которых вручную тайнтинг не используется.

$modbody[^untaint[html]{$tbody}]

^connect[$SQL.connect-string]{
^void:sql{INSERT into live (body) values('$modbody')}
}
Но как все-таки добиться верного? Чтобы в базе оказались в виде тегов только преобразования и чтобы апостроф нормально добавлялся.