Bor*_*nov 4 java security xss struts2
我有一个使用Struts 2构建的应用程序.它存在跨站点脚本(XSS)攻击的一些问题.我想以类似于JSP的方式编码一些动作输入参数<c:out value="${somevalue}"/>在Struts 2中有什么简单的方法吗?Java API方法会很好.
编辑我找到了这个 - http://www.owasp.org/index.php/Talk:How_to_perform_HTML_entity_encoding_in_Java
有经验吗?
Jig*_*shi 10
您可以使用
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
${fn:escapeXml(someValue)}
Run Code Online (Sandbox Code Playgroud)
还有一个很好的API JSoup
清理不受信任的HTML
问题
您希望允许不受信任的用户为您网站上的输出提供HTML(例如,作为评论提交).您需要清理此HTML以避免跨站点脚本(XSS)攻击.
解
将jsoup HTML
Cleaner与a指定的配置一起使用Whitelist.Run Code Online (Sandbox Code Playgroud)String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>"; String safe = Jsoup.clean(unsafe, Whitelist.basic()); // now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>
因此,在处理提交的文本时,您基本上需要做的就是以下内容:
String text = request.getParameter("text");
String safe = Jsoup.clean(text, Whitelist.basic());
// Persist 'safe' in DB instead.
Run Code Online (Sandbox Code Playgroud)
该项目包含其他配置,拦截器和其他用于提高struts 2应用程序安全性的代码.
也可以看看
作为XSS预防手段转义输入参数有几个不利因素,尤其是:
因此,最好应用一致的输出转义.
也可以看看:
| 归档时间: |
|
| 查看次数: |
16435 次 |
| 最近记录: |