在线安全的web应用程序

问题描述:

我有一个web应用程序,它喜欢在线主机。用户登录由散列的密码组成,该密码保存在数据库中,并通过代码进行验证,但很简单,但对于有现场服务器的小型办公室来说可以。在线安全的web应用程序

但我不认为这将适用于应用程序托管在线。我考虑手动列出客户端的IP地址在Apache中阻止从其他机器的访问。

我还能做些什么来使访问安全吗?证书可能?

+0

因此,您的问题仅针对用户身份验证,状态管理和凭据存储? – Gumbo 2011-03-12 14:49:09

+0

我的问题是为了网上应用程序的安全访问。我不认为认证足够强大,因为密码存储为数据库上的散列表示。我也担心任何人绕过身份验证,访问数据库和只能从客户端机器访问webapp。 – Santiago 2011-03-12 19:58:22

你是什么意思的“用户登录包含哈希密码”?你会话cookie中使用散列密码吗?好了,反正这是一些要点,让你开始:

  1. 使用HTTPS只(带有效证件)
  2. 不使用共享的主机(如果必须使用VPS)
  3. 店腌制的哈希在你的数据库
  4. 密码,如果该数据库是不是在本地主机上,只能使用加密连接
  5. 使用的安全和真正的随机会话ID
  6. 无效/到期您的服务器上的会话
  7. 你可以考虑客户端证书是否适合您的需要
  8. 手表XSS,XSRF及类似的漏洞
  9. 只为了任何改变任何州或数据POST请求
  10. 使用在任何POST参数的随机令牌改变任何状态或数据
  11. 不靠饼干只
  12. 使用DNSSEC如果可能的话

这些仅仅是拇指的一些好的规则,让你开始。

+0

webapp上的初始屏幕是用户登录页面。用户输入他的用户通行证。通过检查密码存储在已经被散列的数据库中。我没有使用任何基于会话的cooie。我以前没有使用过证书,我将如何执行此操作。一个VPS是我会去的托管选项。你有关于加密连接和客户端证书的指针吗?谢谢 – Santiago 2011-03-12 19:54:44

首先:安全性不是仅仅为了使应用程序安全而需要附加的东西。这是一种态度或基本原则,需要在每个思想和每一行代码中加以考虑。

但是,除此之外:OWASP, the Open Web Application Security Project,维护一个列表Top 10 Most Critical Web Application Security Risks。阅读并尝试了解每个安全风险。这是您开发安全Web应用程序时需要了解的基本知识(以“知道您的敌人”为座右铭)。

然后阅读OWASP Development Guide,其中描述了有关如何开发安全Web应用程序的准则,并尝试将其建议应用于现有应用程序。

+0

同意,安全不只是一些开关。我正在寻找的是一些技术和程序,我可以做些什么来提高安全性。目前这是相当基本的,不适合公共领域 – Santiago 2011-03-12 19:59:44