Как Вы боретесь против всех этих путей? - JavaScript и его миллион различными путями можно записать это

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

Я наконец разбудил свой белый список при помощи пакета гибкости HTML. Это должно удалить


Поскольку это не находится в моем белом списке плюс никакой onclick, onmouse и и т.д.

Однако теперь кажется, что можно записать JavaScript в тегах атрибута.


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

Таким образом, это нашло бы все мои позволенные атрибуты для каждого тега HTML (так src, href и и т.д.).

Я затем нашел innertext и поместил его в нижний регистр. Я затем сделал индекс, проверяют эту строку для "JavaScript".

Если индекс был найден, я запустил в том индексе и удалил каждый символ из того индекса на. Таким образом в вышеупомянутом случае атрибут оставили бы с Src = "".

Теперь кажется, что это не достаточно хорошо, так как можно сделать что-то как

сценарий Java jav ascript

и вероятно пространство между каждой буквой.

Таким образом, я не знаю, как остановить его. Если бы это было просто пространство между Java и сценарием затем, то я мог бы просто записать простой regex, который не заботился сколько пробелов между. Но если это действительно, что можно поместить пространство или вкладку или безотносительно после каждой буквы затем, у меня нет подсказки.

Затем для положения во главе его от Вас может сделать все эти другие отличные способы также

    // will work apparently
     // will work apparently
     // will work apparently
    // will work apparently
     // will work apparently
     // will work apparently

http://ha.ckers.org/xss.html

Я знаю, что это для некоторого перекрестного нападения сценариев (я не делаю asp.net XSS mvc уже, делает хорошее задание этого), но я не вижу, почему это не может быть использование для других вещей как подобный во всех тех примерах, оно делает предупреждения, таким образом, оно могло использоваться для чего-то еще.

Таким образом, у меня нет подсказки, как проверить и удалить любой из них.

Я использую C#, но я не знаю, как остановить любой из них, и ни о чем не знайте в C#, который мог выручить меня.

7
задан chobo2 19 June 2010 в 06:34
поделиться

2 ответа

Похоже, вы хотите очистить javascript, и для этого есть хорошее решение на C#/.Net.

Скачайте Microsoft Web Protection Library с CodePlex.

Если вы запустите ваш html-фрагмент через Microsoft.Security.Application.AntiXss.GetSafeHtmlFragment(html), то получите такой результат:

<img src=""> // will work apparently
<img src=""> // will work apparently
<img src=""> // will work apparently
<img src="">// will work apparently
<img src=""> // will work apparently
<img src=""> // will work apparently

All script cleaned out.

6
ответ дан 7 December 2019 в 09:56
поделиться

заставить страницу говорить "редир" Теперь после отправки формы возьмите все значение атрибута src и замените его на redir? Src = theExactValueHere теперь эта программа redir сначала загружает значение параметра GET src (которое в конечном итоге является фактическим значением атрибута src) со стороны сервера, а затем пересылает контент, поскольку он включает тот же самый MIME / тип он также может выполнить некоторую проверку значения атрибута, а затем перенаправление заголовка.

Есть и другие способы, но я думаю, что это тоже было бы самым простым и надежным.

0
ответ дан 7 December 2019 в 09:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: