所以我不是真正的后端开发人员,但我需要开发一个基本的密码登录。(完全不合理的)客户明确表示他只想输入密码。不能传递用户名或任何其他信息。由于没有任何用户,因此只有一个密码,我直接将其编码到脚本中。看起来像:
$password = $_POST['password']
if ($password == 'mypass') {
do something....
}
这是否容易受到某种注入黑客的攻击?还有其他我应该担心的巨大安全漏洞吗?
这是否容易受到某种注入黑客的攻击?
不,因为你没有向其他任何东西注入任何东西。
还有其他我应该担心的巨大安全漏洞吗?
不,您的代码不是易受攻击或可利用的,但是可以改进它。
我建议散列您的密码并使用 srtcmp 而不是 == 运算符。
有一种情况可能会受到攻击,您可能会或可能不会遭受攻击。
您的示例要求用户发布密码,重要的是,它没有表明它正在维护服务器端会话。如果没有会话正在使用,这意味着只有包含此代码并且发布了密码的页面才会受到保护。
如果您开发了一个多页 Web 应用程序,并且没有将此密码检查代码放入每个敏感资源中,那么您将很容易受到授权绕过攻击。
例如,如果您的网站的页面位于
恶意用户可以直接访问 /admin/users.php,完全绕过您的授权机制。
尽可能始终使用一种方式散列,用于存储在数据库表中或硬编码。您可以硬编码密码的 MD5 哈希值,而不是硬编码明文密码。然后计算用户输入的哈希值,然后比较两者。这样你就不必担心有人窃取你的代码并用它泄露密码。