在线安全的web应用程序
我有一个web应用程序,它喜欢在线主机。用户登录由散列的密码组成,该密码保存在数据库中,并通过代码进行验证,但很简单,但对于有现场服务器的小型办公室来说可以。在线安全的web应用程序
但我不认为这将适用于应用程序托管在线。我考虑手动列出客户端的IP地址在Apache中阻止从其他机器的访问。
我还能做些什么来使访问安全吗?证书可能?
你是什么意思的“用户登录包含哈希密码”?你会话cookie中使用散列密码吗?好了,反正这是一些要点,让你开始:
- 使用HTTPS只(带有效证件)
- 不使用共享的主机(如果必须使用VPS)
- 店腌制的哈希在你的数据库
- 密码,如果该数据库是不是在本地主机上,只能使用加密连接
- 使用的安全和真正的随机会话ID
- 无效/到期您的服务器上的会话
- 你可以考虑客户端证书是否适合您的需要
- 手表XSS,XSRF及类似的漏洞
- 只为了任何改变任何州或数据POST请求
- 使用在任何POST参数的随机令牌改变任何状态或数据
- 不靠饼干只
- 使用DNSSEC如果可能的话
这些仅仅是拇指的一些好的规则,让你开始。
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应用程序的准则,并尝试将其建议应用于现有应用程序。
同意,安全不只是一些开关。我正在寻找的是一些技术和程序,我可以做些什么来提高安全性。目前这是相当基本的,不适合公共领域 – Santiago 2011-03-12 19:59:44
因此,您的问题仅针对用户身份验证,状态管理和凭据存储? – Gumbo 2011-03-12 14:49:09
我的问题是为了网上应用程序的安全访问。我不认为认证足够强大,因为密码存储为数据库上的散列表示。我也担心任何人绕过身份验证,访问数据库和只能从客户端机器访问webapp。 – Santiago 2011-03-12 19:58:22