Mer*_*ous 6 java security spring spring-security hybris
我正在运行基于Java Spring MVC的Web应用程序.它也基于Hybris平台.
现在,已经实现了身份验证和授权方面的基本功能.这意味着我们有会话过滤器,工作用户系统等.
但是,我们目前没有针对诸如XSS和其他可能的攻击等内容的安全措施.XSS可能是最大的担忧,因为它是最常见的攻击方式.
现在,我想知道......采取哪些步骤是明智的?我看了一下,我看到像XSS-Filter这样的东西存在.实现这样做非常简单,只需复制一下源代码并将其添加为tomcats web.xml即可.
但是我想知道这样过滤器的安全性是否令人满意?
还有更臃肿的解决方案,例如我可以使用spring-security.然而,阅读文档,我觉得这是非常臃肿,其中很大一部分实现了已经实现的(例如,两个A).我觉得将它配置为我需要它完成的工作量需要花费很多工作.我错了吗?
和:
您如何建议处理安全问题,例如XSS?您是否使用了某种适合需求的预定义框架,或者通过遵循备忘单等内容来"手工制作"您的安全性?
设置Anti-XSS Headers(提示:使用Spring Security或制作自己的Interceptor)
Content-Security-Policy: default-src 'self'   --only allow content from your own site
X-XSS-Protection: 1; mode=block   --prevent some reflective attacks in some browsers
X-Content-Type-Options: nosniff   --can't trick browser into detecting and running js in other content types
防止恶意入站HTML/JS/CSS
使用Hibernate Validator(您不需要使用Hibernate ORM来使用它)和@SafeHtml所有用户提供的String字段上的注释.
您可以在一个Interceptor中验证所有请求标头,post params和查询参数,以进行简单的XSS验证.
在输出时转义所有用户提供的数据
使用OWASP的Java编码器项目 <e:forHtml value="${attr}" />来转义输出或JSTL <c:out value="${attr}"/>和web.xml集合
<context-param>
    <param-name>defaultHtmlEscape</param-name>
    <param-value>true</param-value>
</context-param>
如果转义HTML节点文本,它们同样安全,但OWASP对HTML属性或<script>转义更安全.
如果您要编辑的文件太多,请考虑http://pukkaone.github.io/2011/01/03/jsp-cross-site-scripting-elresolver.html
使JavaScript无法读取您的会话cookie.在web.xml:
<session-config>
    <cookie-config>
        <!-- browser will disallow JavaScript access to session cookie -->
        <http-only>true</http-only>
    </cookie-config>
    <tracking-mode>COOKIE</tracking-mode>
</session-config>
如果您要托管用户上传的文件,则需要使用不同的域(不是子域)进行下载链接,这样恶意内容就无法破坏您的会话cookie(是的,即使它是httpOnly也会发生这种情况)
| 归档时间: | 
 | 
| 查看次数: | 980 次 | 
| 最近记录: |