$a=preg_replace("#<|>|\[|\]#",'',$a);
и
$a=htmlspecialchars($a);
Спустя 1 час, 20 минут, 25 секунд (10.06.2012 - 15:32) vagrand написал(а):
Хех, а если я пишу формулу и мне нужны знаки больше и меньше или квадратные скобки нужны. ты что же их просто вырежешь?
Спустя 7 минут, 42 секунды (10.06.2012 - 15:40) GET написал(а):
vagrand
нет там формулы по умолчанию ненужны
нет там формулы по умолчанию ненужны
Цитата |
если для странички не суть важно |
просто мне как-то кажется, что надежнее что ли...даже с strip_tags и то :
функция не модифицирует атрибуты тэгов, использование которых разрешено вами с помощью аргумента allowable_tags, включая атрибуты style и onmouseover, которые злоумышленник может применить для нехороших целей: отправляя текст, который будет показан другим пользователям
вот и думаю...preg_replace все вырезает остается место только для SQL инъекций, но в том месте их не сделаешь.
Спустя 7 минут, 46 секунд (10.06.2012 - 15:48) vagrand написал(а):
Ты не понял ту мысль, которую я хотел до тебя донести. Нельзя ничего вырезать из текста, т.к. ты не знаешь зачем оно там нужно. Это может быть совсем и не html тег, а ты возьмешь и вырежешь. Надо экранировать специальные символы, т.е. заменять их на спец коды.
Спустя 6 минут, 50 секунд (10.06.2012 - 15:55) GET написал(а):
vagrand
Да нет там описание...
Да нет там описание...
Цитата |
т.к. ты не знаешь зачем оно там нужно |
точно знаю, что <>[] там быть не должно, а их ввод намеренная попытка вреда.
Спустя 2 минуты, 42 секунды (10.06.2012 - 15:57) vagrand написал(а):
Ну я тебе сказал как делать правильно а дальше ты уже сам думай
Спустя 12 минут, 25 секунд (10.06.2012 - 16:10) GET написал(а):
vagrand
Спасибо, конечно, но все равно не понял, почему нельзя если я точно знаю для чего нужен контент поля. Зачем мне вставлять в БД <b>fdf</b> (если предположить, что других проверок я не произвожу), когда я могу вставить bfdfb хотя бы место меньше занимает.
Спасибо, конечно, но все равно не понял, почему нельзя если я точно знаю для чего нужен контент поля. Зачем мне вставлять в БД <b>fdf</b> (если предположить, что других проверок я не произвожу), когда я могу вставить bfdfb хотя бы место меньше занимает.
Спустя 2 минуты, 48 секунд (10.06.2012 - 16:13) neadekvat написал(а):
A.B.C., эти методы имеют различный результат на выходе. Причем для первого используются strip_tags.
А что касается инъекций - то для этого используется третья функция.
Плюс, есть правило, по которому нельзя изменять пользовательские данные при записи. Их нужно модифицировать (защищаться от взлома) при выводе.
А что касается инъекций - то для этого используется третья функция.
Плюс, есть правило, по которому нельзя изменять пользовательские данные при записи. Их нужно модифицировать (защищаться от взлома) при выводе.
Спустя 4 минуты, 21 секунда (10.06.2012 - 16:17) GET написал(а):
neadekvat
Но юзер будет видеть результат обработки перед записью БД.
Я не спорю, но...
Спасибо.
Но юзер будет видеть результат обработки перед записью БД.
Я не спорю, но...
Спасибо.
Спустя 2 минуты, 58 секунд (10.06.2012 - 16:20) Catalan написал(а):
Интересно, а что быстрее - htmlspecialchars или регексп?
Спустя 4 минуты, 3 секунды (10.06.2012 - 16:24) GET написал(а):
htmlspecialchars наверное...сейчас попробую потестю...выложу результаты
Спустя 12 минут, 9 секунд (10.06.2012 - 16:36) GET написал(а):
$a=array('<b>sds[d]fs</b>','<p>sdsdfs</p>','<br>','<h1>dfsf</h1>','ef23[f22]33','ffweeff','34234242[4]','434433432');
$i=0;
do
{
$i++;
$b=rand(0,7);
$c=rand(0,7);
$d=rand(0,7);
$e=rand(0,7);
$str=$a[$b].$a[$c].$a[$d].$a[$e];
//$str2=htmlspecialchars($str);
//$str2=strip_tags($str);
$str2=preg_replace("#<|>|\[|\]#",'',$str);
}while($i<100001);
htmlspecialchars: 1.02 сек.
strip_tags: 0.92 сек.
preg_replace: 3.2 сек.
Вывод: htmlspecialchars быстрее на 310%. preg_replace, самый быстрый strip_tags
Спустя 6 минут, 22 секунды (10.06.2012 - 16:42) neadekvat написал(а):
Нашли же, что проверять.
Я еще раз повторяю, приведенный регэксп и htmlspecialchars имеют совершенно разное назначение и в любом случаи применяться должны при выводе из бд.
Я еще раз повторяю, приведенный регэксп и htmlspecialchars имеют совершенно разное назначение и в любом случаи применяться должны при выводе из бд.
Спустя 3 минуты, 5 секунд (10.06.2012 - 16:45) GET написал(а):
neadekvat
Да, действительно...
Да, действительно...
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.