ColdFusion как предотвратить атаки XSS в WYSIWYG

В моем приложении coldfusion есть WYsIWYG-редактор, и мне нужно предотвратить XSS-атаки. Существуют ли какие-либо способы Coldfusion для устранения всех атак типа сценариев?


person AnApprentice    schedule 22.07.2010    source источник


Ответы (4)



Главный вопрос, который я хотел бы задать, — для чего нужен этот WYSIWYG? Многие WYSIWYG позволяют вам определять определенные теги, которые нужно удалить из кода.

Например, TinyMCE может удалить теги script с помощью
http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/invalid_elements

К сожалению, это не решает вашу проблему, поскольку все формы отправки данных на стороне клиента можно обойти. Если вы должны использовать WYSIWYG, то вам действительно нужно убедиться, что вы охватили все свои базы при проверке и отображении формы. Вы можете удалить все теги script и обязательно удалить все атрибуты событий и код javascript в атрибутах ссылок href.

Если допустимо разрешить только определенное подмножество тегов, я бы предложил использовать BBML, BBCode или Markdown.

http://www.depressedpress.com/Content/Development/ColdFusion/Extensions/DP_ParseBBML/Index.cfm

http://en.wikipedia.org/wiki/BBCode

http://sebduggan.com/projects/cfxmarkdown

Вы можете использовать TinyMCE в качестве WYSIWYG для BBCode http://tinymce.moxiecode.com/examples/example_09.php, а StackOverflow использует отличный редактор разметки http://github.com/cky/wmd

Вот полезная информация, если вы хотите отрендерить BBCode в Coldfusion
http://www.sitepoint.com/forums/showthread.php?t=248040

person Tyler Clendenin    schedule 22.07.2010

Следует учитывать, что, хотя удаление тегов в браузере с помощью TinyMCE является хорошей идеей, это делает фатальное предположение, что пользователь будет отправлять контент через браузер. Все, что вы делаете в браузере, должно быть продублировано на сервере, потому что злоумышленники могут обойти любую проверку, которая происходит в браузере.

С учетом сказанного проверьте эту статью: http://www.fusionauthority.com/techniques/3908-how-to-strip-tags-in-three-easy-lessons.htm, где это описано более подробно, чем здесь. По сути, в нем обсуждается использование регулярных выражений и UDF для легкого удаления тегов. Последний пример особенно важен... проверьте его.

person Daniel Sellers    schedule 22.07.2010
comment
Я даже не хочу заморачиваться с Front-end и хочу 100% серверное решение. - person AnApprentice; 22.07.2010
comment
Это хорошая ссылка. На него немного не стоит полагаться, учитывая, что ему 7 лет :) - person AnApprentice; 22.07.2010
comment
Принципы, изложенные в статье, так же актуальны сегодня, как и 7 лет назад. Вы хотите убедиться, что получаете именно ту ценность, которую ожидаете. - person Daniel Sellers; 28.07.2010

Чтобы преобразовать эти теги ‹> или используйте функцию HTMLEditformat.

person PPShein    schedule 23.07.2010