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

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

我有一个基于JSF的Web应用程序,它使用MySQL作为DB。我已经实现了代码,以防止CSRF在我的应用程序中。

现在,由于我的底层框架是JSF,我想我不必处理XSS攻击,因为它已经由UIComponent..我不会在任何视图页面中使用任何JavaScript。即使我使用,我真的需要实现代码来防止XSS攻击吗?

对于DB,我们在所有DB交互中使用准备好的语句和存储过程。

为了防止这3种常见的攻击,还有什么需要处理的吗?我已经经历过OWASP地点及其备忘单.

我需要处理其他潜在的攻击向量吗?


呼唤远方
浏览 780回答 3
3回答

慕勒3428872

我不会在任何视图页面中使用任何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标记和样式。

莫回无

与旧式JSP/Servlet不同,JSF没有真正的response.write(foo)..对于刚接触JSF2.x的用户来说,这个答案有点让人困惑
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java