2015-08-27 5 views
0

Как мы используем htmlspecialchars, чтобы избежать использования тега html в качестве входного.PHP - Остановить нападавших при использовании javascript во входном поле

Аналогично, есть ли какая-либо функция или метод, которые мы можем использовать, чтобы избежать javascript тоже?

htmlspecialchars не заботится о теге сценария.

любые предложения. ?

+1

вы можете использовать htmlentities(). Он предотвращает использование всех html-тегов. – NavidIvanian

+0

Кроме того, обязательно очистите данные на стороне сервера, так как злоумышленники могут отправлять данные непосредственно на сервер и обходить защиту на стороне клиента. – raduation

+1

Возможный дубликат [Окончательное руководство по аутентификации на основе форм] (http://stackoverflow.com/questions/549/the-definitive-guide-to-form-based-website-authentication) – Script47

ответ

0

Он должен позаботиться о тегах сценария, поскольку теги < и > переведены.

< (меньше) становится &lt;

> (больше) становится &gt;

Смотрите PHP документации: http://php.net/manual/en/function.htmlspecialchars.php

2

Используйте filter_input и FILTER_SANITIZE_FULL_SPECIAL_CHARS флаг.

Это будет конвертировать < и > в &lt; и &gt;, соответственно.

$input = filter_input(INPUT_POST, 'fieldName', FILTER_SANITIZE_FULL_SPECIAL_CHARS); 

Так что:

<script>alert('hello');</script> 

Становится это:

&lt;script&gt;alert(&#039;hello&#039;);&lt;/script&gt; 

Посмотрите на различные фильтры дезинфицировать. Вместо использования fullspecialchars на всем, используйте фильтр, который применяется к входу, который вы ожидаете ... например. если вы запрашиваете номер, используйте цифровой фильтр.

+0

Я пробовал: $ str = ""; $ str = filter_var ($ str, FILTER_SANITIZE_STRING); echo $ str; Выход: alert ('Hello'); Thats Ok, но все равно я могу использовать его как TRUE или FALSE ...? if $ str Содержит теги html, он должен выйти и не вводить данные в БД. – Ameya

+0

Спасибо, я мог бы достичь, чего хотел. Еще раз спасибо. – Ameya

+0

Вы можете сделать что-то в строках 'if ($ input! = Filter_var ($ input, ...)) {return false;}' – chrisjacob

 Смежные вопросы

  • Нет связанных вопросов^_^