JSF的安全问题是什么?

bak*_*aro 2 java security jsf struts jsf-2

我沉浸在Struts中,我开始学习JSF 2.0.我可以继续使用Struts中的工作来减少攻击向量,还是有新的攻击向量我需要编写代码?

Bal*_*usC 6

默认情况下,JSF/Facelets已经转义输出UIOutputUIInput组件.因此,只要您通过<h:outputText>和重新显示用户控制的输入<h:inputWhatever>,那么XSS部分是安全的.

JSF还通过隐藏输入字段构建了针对CSRF的预防措施javax.faces.ViewState.在JSF 2.1之前,这只是"太容易"猜测,另见JSF impl issue 812JSF spec issue 869.这最近(2010年10月3日)已针对JSF 2.1进行了修复.

请注意,防止SQL注入攻击不是Web MVC框架的责任.您需要在数据层中解决该部分.如果以正确的方式使用JPA(即不在SQL字符串中连接用户控制的输入,但使用参数化查询),那么该部分也是安全的.