为了账号安全,请及时绑定邮箱和手机立即绑定

JSF中的CSRF、XSS和SQL注入攻击预防

JSF中的CSRF、XSS和SQL注入攻击预防

呼唤远方 2019-06-21 15:18:42
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。

闭包模板是Java的一种选择。

上下文自动转义的工作方式是增加闭包模板,根据其出现的上下文正确编码每个动态值,从而防范攻击者控制的值中的XSS漏洞。

编辑

既然你在使用JSF,你应该读一读JSF中的XSS缓解:

转义输出文本

<h:outputText/><h:outputLabel/>默认情况下,将转义属性设置为True。通过使用此标记显示输出,您可以减轻大多数XSS漏洞。

SeamTextParser和<s:formattedText/>

如果您想让用户使用一些基本的html标记来自定义他们的输入,JBossSeam提供了一个<s:formattedText/>标记,它允许用户指定一些基本的html标记和样式。


查看完整回答
反对 回复 2019-06-21
?
莫回无

TA贡献1865条经验 获得超7个赞

与旧式JSP/Servlet不同,JSF没有真正的response.write(foo)..对于刚接触JSF2.x的用户来说,这个答案有点让人困惑

查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 779 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号