如何在PHP代码中输入密码,并保证浏览器中没有人查看该页面可以检索它?
是:<?php $password = 'password' ?>
够了吗?有没有更好,更安全的方法呢?
答案 0 :(得分:12)
取决于您要存储的密码的类型。
答案 1 :(得分:6)
您的PHP代码将(baring配置错误)在服务器上处理。浏览器中不会显示<?php ?>;
块内的任何内容。您应该确保您的部署服务器不会向客户端显示语法错误 - 即错误报告设置为不包括E_PARSE的内容,以免仓促编辑实时代码(承认它,我们都这样做:)泄露一些信息。< / p>
编辑:关于将它们存储在文档根目录外的文件中的观点,以避免在PHP配置中断时暴露无效。当我使用PHP时,我在运行时保留了htdocs之外的require
d的config.inc文件,并导出了配置特定的变量(即密码)。
答案 2 :(得分:2)
有很多方法可以做到这一点。但是,人们将无法在PHP文件中查看您存储的密码(作为纯文本),因为PHP是服务器端语言,这意味着,只要您不将其打印到浏览器,它就会保持隐形。
所以这是'安全'。
答案 3 :(得分:2)
假设您的密码为“iamanuisance
”。以下是如何在代码中存储密码。只需将它放在你的标题中。
//calculate the answer to the universe
${p()}=implode(null,array(chr(0150+floor(rand(define(chr(ord('i')+16),'m'),
2*define(chr(0x58),1)-0.01))),str_repeat('a',X),y,sprintf('%c%c',
0141,0x2E|(2<<5)),implode('',array_map('chr', explode(substr(md5('M#1H1Am'),
ord('#')-9,true),'117210521152097211020992101')))));function p(){return
implode('',array_reverse(str_split('drowssap')));}
如果它不是完全明显,您可以稍后以$password
轻松访问密码。干杯! :P
答案 4 :(得分:1)
存储加密的密码。例如,取输出:
sha1("secretpassword");
...并将其放入您的代码中。更好的是,将它放在数据库中或Web服务器目录树之外的文件中。
答案 5 :(得分:1)
基本,可能不是100%不透水但足以用于一般用途:
使用您喜欢的算法散列密码(使用salt以增加安全性),并存储散列(和盐)。比较盐渍和使用存储数据对输入进行哈希输入以检查密码。
答案 6 :(得分:1)
如果您可以在PHP中检索密码,那么它是可检索的......
您唯一能做的就是将密码移至“受保护”的位置。
大多数托管公司将提供一个单独的位置,您可以放置您的数据库文件等,并且无法通过浏览器访问此位置。你应该在那里存储密码。
但是他们仍然在你的服务器上,当有人访问你的盒子时,他就有了你的密码。 (他得到你的PHP有解码方式,他可以访问受保护的文件 - &gt;他可以阅读它)
所以没有“安全密码”这样的东西
您唯一的选择是不为您的用户存储密码等...如果我订阅了服务,我会生气,并且他们会通过电子邮件向我发送密码,以防我忘记密码。他们以“可检索的方式”存储它,这不是你应该做的事情。
这就是所有散列和腌制的地方。你想要非常有人能够访问资源。因此,您对密码进行哈希+加密,并将其存储在数据库中,以供希望访问该服务的用户使用,当用户想要进行身份验证时,您应用相同的算法来创建哈希值并进行比较。
答案 7 :(得分:0)
<?php
if($password=="abcd")
echo "OK";
else
echo "Wrong.";
?>
用户可以获得正常或其他任何错误。
答案 8 :(得分:0)
我通常不相信原始PHP代码的服务密码。编写一个简单的PHP扩展来释放密码。这可以确保工作集无密码,这使得受感染的计算机可以向服务授予对黑客的访问权限。
答案 9 :(得分:0)
根据建议,存储密码sha1,盐渍和胡椒
function hashedPassword($plainPassword) {
$salt = '1238765&';
$pepper = 'anythingelse';
return sha1($salt . sha1($plainPassword . $pepper));
}
然后比较两个值
if ($stored === hashedPassword('my password')) {
...
}
如果您不能将哈希密码存储在服务器根目录之外,请记得在.htaccess文件中指示apache禁止访问该文件:
<Files passwords.config.ini>
Order Deny,Allow
Deny from all
</Files>
答案 10 :(得分:-1)
最好的方法是将密码存储在根目录之上。如果你决定在php文件中有密码,那么没有人能够查看,因为php文件在服务器中被执行。但是如果服务器不支持php,那么这些文件将作为文本文件传送,任何人都可以看到密码。