PHP中的安全密码列表

Ada*_*iss 0 php security login

我正在考虑在目录中的PHP文件中存储小规模(最多20个用户)应用程序的用户密码列表(最终有关它们的更多信息) public_html_root/system/config/

<?php if($calledByApp !== true) die();
  $pwds['username1'] = 'hispassword';
  $pwds['username2'] = 'herpassword';
  $pwds['username3'] = 'anotheroned';
?>
Run Code Online (Sandbox Code Playgroud)

现在.hispassword实际上是哈希版本

$hashedpasword = sha1($password.sha1($salt));
Run Code Online (Sandbox Code Playgroud)

这样,如果包含文件,它会检查$calledByApp,从入口点开始设置 - 即index.php在root中,所以我们可以说这样安全.如果直接从浏览器调用它 - 它将不会作为文本文件提供,而是作为PHP文件提供 - 它也将死亡,因为$calledByApp它将返回nullfalse.

此外,如果存储/删除了其他用户,则会重建该文件,因此它会反映所有用户.包含此文件后,我们将所有用户都设置为pretty array,所以如果我们调用的话

if (is_string($pwds[$sanitized_username]) 
&& ($pwds[$sanitized_username] === $sanitized_sha1_userpassword))
Run Code Online (Sandbox Code Playgroud)

我们会登录.

我的问题是:这是安全的足够

澄清:用户的数据库似乎有点矫枉过正 - 最多 20个用户的另一个表.此外,虽然这不会检查用户是否真实,但它不会对数据库执行任何操作 - 看起来也增加了安全性.

Ign*_*ams 5

如果由于某种原因mod_php有打嗝,可能会导致httpd显示未解释的文件; 将脚本存储在文档根目录之外以便解决此问题.