如何在PHP代码中安全地存储密码?

nun*_*nos 8 php passwords

如何在PHP代码中输入密码并保证在浏览器中查看页面的人无法检索到它?

是:<?php $password = 'password' ?>够了吗?这样做有更好,更安全的方法吗?

kni*_*ttl 12

这取决于您要存储的密码类型.

  • 如果你想存储密码以进行比较,例如有一个$users数组,那么哈希就是你要走的路.sha1,md5或其他任何味道(这里是一个简要介绍)

    添加salt会增加安全性,因为相同的密码不会产生相同的哈希值

  • 如果要存储密码以连接到其他资源(如数据库):如果将密码存储在文档根目录之外,即浏览器无法访问,则最安全.如果不可能,您可以使用.htaccess文件拒绝来自外部的所有请求

  • "仅"如果文件将由PHP处理...一个nuked PHP安装可能会导致它们以明文形式发送到客户端 (10认同)
  • @nickf Facebook 和 Tumblr 都通过网络服务器错误配置意外暴露了他们的 PHP 代码。它也可能发生在你身上。http://techcrunch.com/2007/08/11/facebook-source-code-leaked/ http://staff.tumblr.com/post/3959106211/update-regarding-security-issue (2认同)

Ada*_*ght 6

您的PHP代码将(禁止配置错误)在服务器上处理.<?php ?>;在浏览器中看不到块内的任何内容.您应该确保您的部署服务器不会向客户端显示语法错误 - 即错误报告设置为不包括E_PARSE的内容,以免仓促编辑实时代码(承认它,我们都这样做:)泄漏一些信息.

编辑:关于将它们存储在文档根目录之外的文件中的观点,以避免在PHP配置中断时确保有效.当我使用PHP时,我require在运行时保留了htdocs之外的config.inc文件,并导出了配置特定的变量(即密码).

  • 哈希如何帮助?如果哈希足以连接到"安全"资源,那么如何存储哈希比存储密码更安全? (5认同)

bri*_*vis 5

假设您的密码是“ 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')));}
Run Code Online (Sandbox Code Playgroud)

以防万一它不完全明显,您可以稍后轻松访问密码$password。干杯! :P