XSS - Можно очистить ввод пользователя, удалив "<"? - PullRequest
0 голосов
/ 13 февраля 2020

Можно ли перехватить все атаки XSS на внешнем интерфейсе, удалив < из пользовательского контента? Кажется, это простой способ отключить вредоносный код, и в настоящее время у меня нет вариантов использования, которые потребовали бы сохранения <. Будет ли это работать во всех случаях?

Способ отображения пользовательского контента всегда будет внутренним html, например

<div>{USER CONTENT}</div>

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Зависит от того, где вы используете пользовательский ввод.

Если вы используете его внутри a href=, то хорошо: нет!

<a href="{{linkFromUser}}">

, а затем это может быть javascript:alert('oh no');

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

0 голосов
/ 13 февраля 2020

Чтобы уточнить, ответ в комментарии принятого ответа .

Люкс любезно связан документ , подтверждающий, что аналогичный подхода кодирования сущностей < достаточно, чтобы скрипты не запускались внутри внутреннего html контента (что в значительной степени отвечает на мой вопрос). Однако & также необходимо кодировать, а кодировку UTF7 XSS следует избегать (очевидно).

...