Java 保护web应用程序的安全

Java 保护web应用程序的安全,java,security,jsf,frameworks,Java,Security,Jsf,Frameworks,可以采取哪些步骤来确保使用Hibernate、Spring和JSF的web应用程序是安全的?什么漏洞可以存在?什么安全框架(如果有的话)是标准的?Joel Coehoorn和其他几个人通过回答一个类似的问题指出了一套良好的实践: 要理解的内容很多,但OWASP开发指南涵盖了网站 自上而下的安全 了解SQL注入以及如何防止它 永远不要相信用户输入(cookies也算作用户输入!) 加密哈希密码和salt密码,而不是将其存储为纯文本 不要试图想出你自己的花哨的认证系统:它是这样的 一件容易出错的事

可以采取哪些步骤来确保使用Hibernate、Spring和JSF的web应用程序是安全的?什么漏洞可以存在?什么安全框架(如果有的话)是标准的?

Joel Coehoorn和其他几个人通过回答一个类似的问题指出了一套良好的实践:

  • 要理解的内容很多,但OWASP开发指南涵盖了网站 自上而下的安全
  • 了解SQL注入以及如何防止它
  • 永远不要相信用户输入(cookies也算作用户输入!)
  • 加密哈希密码和salt密码,而不是将其存储为纯文本
  • 不要试图想出你自己的花哨的认证系统:它是这样的 一件容易出错的事——在微妙的地方 不稳定的方式,而你不会 直到你死后才知道 黑客
  • 了解处理信用卡的规则。请参见此问题:
  • 使用SSL/HTTPS登录和输入敏感数据的任何页面 (如信用卡信息)
  • 如何抵御会话劫持
  • 避免跨站点脚本(XSS)
  • 避免跨站点请求伪造(XSRF)
  • 使用最新的修补程序使您的系统保持最新
  • 确保数据库连接信息是安全的
  • 让自己了解最新的攻击技术和 影响您的 站台
  • 阅读谷歌浏览器安全手册

安全性不仅仅是通过使用框架来解决的。它需要大量的教育、理解、创造力和风险评估来避免犯错误

从阅读这些URL开始

而且一定要及时了解最常见的漏洞,等等。 介绍安全性,包括“无银弹”一文

  • 列出十大安全威胁

我同意其他的回答,没有安全的银弹,也没有简单的框架,你只需插入,而tada,你是安全启用的。一定要查看这个网站,它是学习安全性的一个很好的资源

您自己充分了解安全性(而不是将安全性委托给框架)最终将使您的应用程序更加安全。例如,默认情况下,JSF可以防止大多数(如果不是全部的话)XSS类型的攻击,但是您可以覆盖此功能,可能在没有意识到安全含义的情况下,JSF代码会突然暴露出来


既然没有人提到过,静态代码分析可以帮助解决这个问题。查看Findbugs、PMD和checkstyle等基本和免费代码分析。或者选择更重的功能,例如专门用于检测应用程序中的安全漏洞的功能。

这与问题完全无关。@TheRook:谢谢您指出;当这个问题未经编辑时,它是相关的。