java - 使用 Google App Engine (GAE) 防止跨站点脚本编写的最简单方法(框架/库/调用)是什么?

标签 java google-app-engine xss

我想以最小的努力安全地存储然后显示用户输入的内容(我的目标是一个网络应用程序,而不是编写一堆与安全相关的代码)。

编辑:Google App Engine for Java

最佳答案

我自己也正在处理同样的问题;但我还没有机会把它带入现实世界;所以请记住,我的答案未经实战测试。使用风险由您自行承担。

首先,您需要询问自己是否允许用户使用任何 html 标记。例如,用户可以输入链接吗?将文本加粗怎么样?

如果答案是否定的,那么事情就相当简单了。以下是如何设置过滤器的想法:

http://greatwebguy.com/programming/java/simple-cross-site-scripting-xss-servlet-filter/

但就我个人而言,我不喜欢第一个示例中使用的过滤器;我把它放在那里只是为了向您展示如何设置过滤器。

我建议使用这个过滤器:

http://xss-html-filter.sourceforge.net/

所以基本上:

  1. 从第一个链接设置示例,使其正常工作
  2. 从第二个链接下载示例,将其放入您的项目中,以便您可以从代码中访问它。
  3. 重写 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/

相关文章:

java - 测试方法

应用程序引擎上的 python-raven 因错误而超时

javascript - 针对 XSS 的常见防御措施有哪些?

javascript - 正则表达式保护(绕过 XSS 或开放重定向)- Javascript

javascript - 为什么这个内联 javascript 没有被内容安全策略阻止?

Java:如何在文件中像字节数组一样写入短数组

java - Spring : Error in mapping request (No mapping found for HTTP request with URI)

python - 如何在 GAE 中使用烧杯

python - 现在转换 API 已停用,有没有办法在 appengine/python 中将 PDF 文件转换为图像?

java - GZIPOutputStream 在单独的线程中进行压缩