我想以最小的努力安全地存储然后显示用户输入的内容(我的目标是一个网络应用程序,而不是编写一堆与安全相关的代码)。
编辑:Google App Engine for Java
最佳答案
我自己也正在处理同样的问题;但我还没有机会把它带入现实世界;所以请记住,我的答案未经实战测试。使用风险由您自行承担。
首先,您需要询问自己是否允许用户使用任何 html 标记。例如,用户可以输入链接吗?将文本加粗怎么样?
如果答案是否定的,那么事情就相当简单了。以下是如何设置过滤器的想法:
http://greatwebguy.com/programming/java/simple-cross-site-scripting-xss-servlet-filter/
但就我个人而言,我不喜欢第一个示例中使用的过滤器;我把它放在那里只是为了向您展示如何设置过滤器。
我建议使用这个过滤器:
http://xss-html-filter.sourceforge.net/
所以基本上:
- 从第一个链接设置示例,使其正常工作
- 从第二个链接下载示例,将其放入您的项目中,以便您可以从代码中访问它。
重写
cleanXSS
方法以使用您从第二个链接下载的内容。所以可能是这样的:private String cleanXSS(String value) { return new HTMLInputFilter().filter( input ); }
如果您确实想允许 HTML(例如 anchor 标记等),那么看起来 HTMLInputFilter 具有允许这样做的机制;但它没有记录在案,因此您必须通过自己查看代码或提供您自己的过滤方式来弄清楚。
关于java - 使用 Google App Engine (GAE) 防止跨站点脚本编写的最简单方法(框架/库/调用)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4008013/