ColdFusion, как предотвратить атаки XSS в WYSIWYG - PullRequest
2 голосов
/ 22 июля 2010

У меня в приложении Coldfusion есть редактор WYsIWYG, и мне нужно предотвращать атаки XSS.Есть ли у Coldfusion способы отменить все атаки скриптового типа?

Ответы [ 4 ]

3 голосов
/ 22 июля 2010

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

Например, вы можете заставить TinyMCE вырезать теги сценария с помощью
http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/invalid_elements

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

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

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

0 голосов
/ 23 июля 2010

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

0 голосов
/ 22 июля 2010

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

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

...