Почему использование белый список для очистки HTML?

Я часто задавался вопросом - почему использование белый список в противоположность черному списку при очистке ввода HTML?

Сколько подлые приемы HTML там для открытия уязвимостей XSS? Очевидно теги script и кадры не позволяются, и белый список использовался бы на полях в элементах HTML, но почему запрещают большую часть из всего?

8
задан Carson Myers 18 March 2010 в 22:09
поделиться

5 ответов

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

Если вы оставите что-то в черном списке, то откроете большую дыру в безопасности.

Если браузеры добавляют новые функции, то ваш черный список устаревает.

22
ответ дан 3 November 2019 в 12:49
поделиться

Несмотря на то, что теги script и frame запрещены, вы все равно можете поставить любой тег вроде этого

<test onmouseover=alert(/XSS/)>mouse over this</test>

и во многих браузерах он работает.

4
ответ дан 3 November 2019 в 12:49
поделиться

Потому что тогда вы уверены, что ничего не пропустите. Явно разрешая некоторые теги, вы, очевидно, имеете больше контроля над тем, что разрешено.

Белые списки используются в большинстве тем, связанных с безопасностью. Подумайте о брандмауэрах. Первое правило - блокировать любой (входящий) трафик, а затем открывать только те порты, которые должны быть открыты. Это делает его гораздо более безопасным.

3
ответ дан 3 November 2019 в 12:49
поделиться

Потому что другие теги могут нарушить верстку страницы. Представьте, что произойдет, если кто-то внедрит тег