【问题标题】:Security Threat/Attack to JSF Application after enabling HTTPS启用 HTTPS 后对 JSF 应用程序的安全威胁/攻击
【发布时间】:2012-03-21 16:03:35
【问题描述】:

我在 JBoss 上运行的 RF3.3 上有一个基于 JSF2.0 的 Web 应用程序。 我非常关心网络应用程序的安全性。

虽然从外部世界与我的 Web 应用程序的通信将使用 HTTPS,但在为我的 Web 应用程序启用 HTTPS 后,我仍然不知道还有哪些其他安全攻击可能。

至少,Web 应用程序存在一系列安全攻击,但我的重点是 OWASP 十大安全攻击。

JSF 自动处理 XSS 和 CSRF 攻击(我也使用 ESAPI jar 来避免 CSRF 攻击)并且我已经处理了 SQL 注入攻击。

我觉得即使在启用 https 之后,Web 应用程序也会有太多众所周知的潜在威胁/攻击。

我想告知的另一件事:- 客户将通过 HTTPS 访问应用程序。但是我的应用程序会向另一个内部 Web 应用程序发出某种请求,并且这种通信是 HTTP。因此协议会从 HTTPS 更改为 HTTP,但由于此更改是在 Intranet 上,我认为不会有太大影响。

请指导我。

【问题讨论】:

  • 如果 HTTP 连接纯粹是本地网络上的服务器端,那么假设本地网络是可信任的,这应该是安全的。但是,根据数据是什么,您可能希望通过使用专用连接而不是与其他用户共享本地网络(如果是这种情况)来锁定它。
  • 如果您构建的应用程序是安全的(也就是说,如果您在需要的地方进行了适当的输入和输出清理),那么我不明白为什么这个网站不应该上线。如果你没有做到这一点,这是一个不同的问题。
  • @SilverlightFox 也许您几乎已经回答了我的问题。我正在使用专用连接在 HTTP 和 HTTPS 之间切换。由于 HTTP 连接纯粹是到我托管的另一个 Web 应用程序,所以我确信本地网络的安全性。

标签: security jsf web-applications jsf-2


【解决方案1】:

JSF 自动处理 XSS

这不是真的。 是的,JSF 默认会自动转义,所以h:outputText 和其他人会正确转义 HTML 特殊字符:

转义布尔值

escape 属性是一个布尔标志,用于确定是否应在此组件生成的输出中转义敏感的 HTML 和 XML 字符。该属性的默认值为"true"

这会阻止<script> 标签的注入,但不会影响其他主要的 XSS 向量。 javascript: URL 不需要包含任何“敏感的 HTML 或 XML 字符”,并且注入到 <img src=...><a href="...">javascript: URL 中的 HTML 敏感字符将被适当地转义以缓解攻击。

应检查由不受信任的数据组成的任何 URL 的格式是否正确,并且应针对一小部分将其协议列入白名单。 “http”、“https”和“mailto”是大多数应用程序的良好默认值。


我觉得即使在启用 https 之后,Web 应用程序也会有太多众所周知的潜在威胁/攻击。

站点范围的 HTTPs 是一个很好的步骤。如果您已锁定 XSS、XSRF 和窃听,我将尝试的下一个攻击向量是 header-splitting

如果我可以在您的页面中插入 Location 标头,我可以导致重定向可能携带带有 GET 参数的引荐来源信息到我控制的站点。

【讨论】:

  • 我从头到尾处理过 XSRF、XSS 和 SQL 注入攻击。我不确定标头拆分,因此我无法对此发表评论。但我是否应该得出结论,无论上面提到了什么攻击/威胁,只有那些需要处理才能使网络应用程序在互联网上安全。尽管没有网络应用程序是安全的,但我只想处理网络应用程序上的重大攻击/威胁。
  • @Hukamanata,否。“XSRF”、“XSS”和“SQL 注入”是漏洞模式的有用标签,但任何基于将向量分区到标记存储桶的安全态势都是 enumerating badness。真正的安全需要前期设计:近似于POLA 应用范围、separation of privilege(POLA 每个模块)和defense-in-depth
猜你喜欢
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 2012-06-19
相关资源
最近更新 更多