Очистить параметр запроса ввода от атаки XSS - PullRequest
0 голосов
/ 08 октября 2019

Я работаю над защитой параметров входного запроса для моего приложения от атак XSS. Я наткнулся на шпаргалку owasp для защиты от атаки XSS. Я следую инструкциям на https://github.com/owasp/java-html-sanitizer.

Мне удалось заблокировать XSS-атаку (выполняется путем предоставления событий, таких как onMouseOver, добавляемый к входному параметру), используя следующий код:

PolicyFactory policy = Sanitizers.FORMATTING.and(Sanitizers.BLOCKS);
value = policy.sanitize(value); // Value is the "value" of input param

Это преобразует что-то вроде name = FIRST "onmouseover =" alert ('222') , предоставленное в строке запроса: X = Val1 & Y = & Z = & A= false & name = FIRST "onmouseover =" alert ('222') & B = 456 & C = 123 до

<span class="db-wrap-name" title="FIRST&quot;" onload&#61;&#34;alert(&#39;222s2&#39;)="">FIRST" onload="alert('2222')</span>

У меня вопрос, является ли эта санация достаточной для защиты входного параметра от XSS?

PS: Может кто-нибудь указать мне на линейный источник, чтобы пройти OWASP HTML Sanitization. Мне удалось понять это, но есть пробелы. Будет здорово, если я смогу получить линейный источник.

Спасибо

1 Ответ

1 голос
/ 10 октября 2019

Нет. Этого недостаточно. См. Шпаргалку OWASP XSS .

. Для Fighting XSS вы должны:

  1. Подтвердить ваши входные данные
  2. В конечном итоге экранировать некоторые символы во входных данных
  3. Кодировать данные, которые вы отправляете обратно клиенту.
...