我正在为我的一个朋友做一个非常简单的网络应用程序。他将是唯一一个访问限制区域的人,所以我的问题是:
建议在源代码上使用带有固定密码的登录信息,如下所示:if ($user_pass == 'myultrasecretpass')
?
安全吗?有怎么破解?
我认为没有必要将用户和密码存储在数据库中,有些类似。
请告诉我你的想法。
答案 0 :(得分:0)
将密码存储在源文件中并不是少安全,前提是其他人无法访问。否则,您最终会存储db密码,这将导致相同的安全性。在没有任何其他访问服务器的情况下攻击它的唯一方法是使用暴力攻击。
然而,暴力攻击是一个现实世界的问题。为了防范它们,您需要防止单个IP过快地发出太多请求(例如,在超时并使用户等待10分钟之后,在一分钟内限制为5次尝试)。然后,攻击者需要大量具有唯一IP地址的计算机来执行攻击。
此外,不言而喻,密码需要足够复杂。
确保拥有用户名字段,即使只有一个用户也是如此。它大大增加了复杂性,使暴力攻击的可能性大大降低。
请注意,这假设数据库不允许本地连接。如果您确实使用仅允许本地连接的数据库,那么使用它来存储敏感信息肯定更安全。在这种情况下,即使攻击者获得数据库密码,他们也只能通过登录来获取信息。
答案 1 :(得分:0)
除了其他考虑因素之外,您可以轻松绕过此处指定的内容,因为您可以选择==。
也就是说,如果我设法将值0输入$ user_pass,比较$ user_pass和任何字符串值将评估为true。
答案 2 :(得分:0)
由于几个原因,这是不安全的。
没有办法防止蛮力攻击。 (您没有跟踪错误的登录尝试)。
如果你的网络服务器向用户提供PHP页面而不是执行它,他们会立即获得密码。