passshift
@passshift
php, js, html5, css

Как очистить строку для защиты от XSS и SQl-инъекции, но пропускать спец-символы?

Здравствуйте уважаемые!

Возможно есть у кого-то проверенная временем функция?

И насколько, кстати, вообще безопасно пропускать спец-символы? В Вк например их повсюду вставляют в сообщения, хотелось бы реализовать подобное, но при этом защититься от XSS и SQl-инъекций...

Спасибо
  • Вопрос задан
  • 1337 просмотров
Решения вопроса 1
@AndryG
Ваш вариант защиты от инъекций в корне неверный. Для защиты необходимо не строку "очищать", а правильно с ней работать, как описал выше Алексей Николаев.

"Очисткой" вы защититесь лишь от примитивных попыток взлома и 100% будут случаи, когда вы будете "портить" содержимое строки. Бесят сайты, гд в коментарии нельзя нормально указать кусок html-кода (именно как текст). Их создатели тоже решили, что надежней "вырезать".

Добавлено
В итоге уточнений пришёл к выводу такому:
<?php
  function my($text){
#    return $text;
#    return htmlspecialchars($text);
    return htmlspecialchars($text, null, null, false);
  }
  ?>
<br>&#174;
<br><?=my('&#174;')?>
<br><?=my('<b>text-&#174;-text</b>')?>
<br><?=my('<script>alert("XSS &#174;")</script>')?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
passshift
@passshift Автор вопроса
php, js, html5, css
Вероятно нужно использовать strip_tags(), а не htmlspecialchars() , но что-то меня смущают "красные" комментарии в мануале php.net/manual/ru/function.strip-tags.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы