gpt4 book ai didi

java - 为网站添加额外的安全性

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:13:05 25 4
gpt4 key购买 nike

我正在运行一个基于 Java Spring MVC 的 Web 应用程序。它还基于 Hybris 平台。

现在,身份验证和授权方面的基本功能已经实现。这意味着我们确实有 session 过滤器、有效的用户系统等。

但是,我们目前没有针对 XSS 和其他可能存在的攻击类型的安全措施。XSS 可能是最大的问题,因为它是最常见的攻击方式。

现在,我想知道......采取哪些步骤是明智的?我环顾四周,发现存在 XSS-Filter 之类的东西。实现这样非常简单,只需复制源代码并将其添加为 tomcats web.xml。

但我想知道这样的过滤器是否能提供令人满意的安全性?

还有更多臃肿的解决方案,例如我可以使用 spring-security。但是,阅读文档,我觉得这非常臃肿,其中很大一部分实现了已经实现的内容(例如,两个 A)。我觉得将它配置为我需要它完成的工作量需要做很多工作。 我错了吗?

和:

您认为建议如何处理安全问题,例如 XSS?您是否使用适合需求的特定预定义框架,或者您的安全性是通过遵循 cheat sheet 之类的东西“手工制作”的? ?

最佳答案

  1. 设置反 XSS header (提示:使用 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
  2. 防止恶意入站 HTML/JS/CSS

    使用Hibernate Validator (你不需要使用 Hibernate ORM 来使用它)与 @SafeHtml所有用户提供的字符串字段上的注释。

    您可以在一个拦截器中验证所有请求 header 、post 参数和查询参数,以进行简单的 XSS 验证。

  3. 在输出时转义所有用户提供的数据

    使用 OWASP 的 Java Encoder Project <e:forHtml value="${attr}" />转义输出或 JS​​TL 的 <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

  4. 使 JavaScript 无法读取您的 session 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>
  5. 如果您正在托管用户上传的文件,您需要为下载链接使用不同的域(不是子域),这样恶意内容就无法破坏您的 session cookie(是的,即使它是 httpOnly 也可能发生这种情况)

关于java - 为网站添加额外的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29012109/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com