什么是最佳做法的工作具有丰富的文字在一个网络应用程序?我不想离开我自己容易受到剧本的攻击。应该对数据进行编码进入的数据库,然后解码时,显示回来的用户?任何咨询意见丰富的文字编辑,处理事情如删除脚本标记或编码输入的标记?

有帮助吗?

解决方案

你应该选择一个白名单已知的标签和特性,分析用户输入作为XML,并删除的每个标记或属性,是不是在白名单。

编辑:请注意,如果你允许的超链接或图像,你必须验证 srchref 标记。我会推荐使用分析 System.Uri, 限制方案 http, 也许域到你的网站(根据你想要什么你的用户能够做)。

类似的事情已经完成之前;谷歌。

编辑:例如,请参阅 这个问题


2nd 编辑:

你不应该对数据进行编码之前把它放到数据库。只要你使用的参数(如果你不是,你 真的 应),该数据库将可以完全不受任何你把它。

如果你输入清理是安全(见上文),它不会让任何区别,如果你进行编码和解它的方式,而如果处理不安全、编码不会有帮助。

然而,它可能是一个很好的想法,以通过运行一个标准的XML parser,拒绝任何投入,不分析和使用的格式化,XML parser(作为我上面提到的)


3 编辑:

有许多丰富的文字编辑;为视,我认为我会推荐 FCKEditor.它会逃脱输入为你,而是你 必须 不依靠它只作为一个攻击者可以禁止JavaScript或伪造他自己HTTP请求。(你还需要验证HTML在服务器)。有许多富有编辑人员对网络的形式(而,我认为,做服务器验证);没有任何为视(尚未)

其他提示

最好的办法是对数据进行编码这是database.Also发送给用户,并没有对其进行编码,据我所知asp.net防止脚本攻击,通过验证输入。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top