JSF中的CSRF、XSS和SQL注入攻击预防我有一个基于JSF的Web应用程序,它使用MySQL作为DB。我已经实现了代码,以防止CSRF在我的应用程序中。现在,由于我的底层框架是JSF,我想我不必处理XSS攻击,因为它已经由UIComponent..我不会在任何视图页面中使用任何JavaScript。即使我使用,我真的需要实现代码来防止XSS攻击吗?对于DB,我们在所有DB交互中使用准备好的语句和存储过程。为了防止这3种常见的攻击,还有什么需要处理的吗?我已经经历过OWASP地点及其备忘单.我需要处理其他潜在的攻击向量吗?
3 回答

慕勒3428872
TA贡献1848条经验 获得超6个赞
我不会在任何视图页面中使用任何JavaScript。即使我使用XSS攻击,我也确实需要实现代码来绕过XSS攻击。
即使在页面中不使用JavaScript,也可能容易受到XSS的攻击。XSS是在没有正确编码的情况下合并由攻击者控制的内容时发生的。
每当你做这样的事
response.write("<b>" + x + "</b>")
攻击者可能导致x
若要包含JavaScript的HTML,则容易受到XSS的攻击。
解决方案通常是不编写大量代码。通常情况下,解决方案是编码。$x
以及攻击者控制的任何其他值,然后将它们包含在生成的HTML中。
response.write("<b>" + escapePlainTextToHtml(x) + "</b>")
过滤或消毒输入可以帮助提供额外的保护层。
<shameless-plug>
还可以使用模板语言对输出进行自动编码,以防止XSS。
上下文自动转义的工作方式是增加闭包模板,根据其出现的上下文正确编码每个动态值,从而防范攻击者控制的值中的XSS漏洞。
编辑
既然你在使用JSF,你应该读一读JSF中的XSS缓解:
转义输出文本
<h:outputText/>
和<h:outputLabel/>
默认情况下,将转义属性设置为True。通过使用此标记显示输出,您可以减轻大多数XSS漏洞。SeamTextParser和
<s:formattedText/>
如果您想让用户使用一些基本的html标记来自定义他们的输入,JBossSeam提供了一个
<s:formattedText/>
标记,它允许用户指定一些基本的html标记和样式。
添加回答
举报
0/150
提交
取消