Блокировка событий javascript в h:outputText, где escape=true

#javascript #jquery

#javascript #jquery

Вопрос:

Я работаю на веб-сайте, который является своего рода социальной сетью, и люди могут отправлять сообщения кому угодно. Был парень, который отправил

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

И это создало javascript: предупреждение..

Как я могу предотвратить это?

Я создал метод, который вводит текст, и если он набран < он преобразуется в "amp;#60;" и > в "amp;#62;"

Но даже при этом приведенный выше код все равно работал. Есть ли что-нибудь еще, что я мог бы сделать, чтобы это не повторилось?

Ответ №1:

Возможно, вы захотите просто отключить использование скриптов с помощью таргетинга и фильтрации всего тега script.

Комментарии:

1. Не могли бы вы быть более конкретными?

2. вы можете обработать и удалить <script></script> из сообщений, отправляемых, когда кто-то отправляет сообщение.

3. я понимаю. я не думал об этом, спасибо! Как насчет javascript внутри html-кода? Я просто продолжаю делать то, что делал все это время?

4. Я думаю, все, что вам нужно, это очистить вводимые пользователем данные, ища сообщения, которые могли бы выполнять скрипты. Разрешение пользователям отправлять сообщения, содержащие исполняемые скрипты, по своей сути опасно и может привести к появлению потенциально вредоносных сообщений.