最佳方法密码保护页面

时间:2014-07-22 06:39:30

标签: php mysql .htaccess session passwords

所以我正在为一个体育联盟做出一个帮助,我已经把它放在一起并且有一个相当专业的网站。

我设置了这个,以便联盟中的某个人可以发布新闻,更新阶梯,夹具等等。

但是我不确定实现登录区域的最佳方法是保护这些允许用户上传文件/更改mysql表数据的页面。一个简单的谷歌搜索给了我太多选项来筛选实际确定什么是合适的和什么是当前的,许多结果来自多年前。

我不需要为我编写的代码我只需要了解目前最佳实践的简单登录方法,即使用3或4种不同的用户/通行证组合保护5或6页。服务器正在运行PHP5.4,我可以使用许多Linux托管的MySQL数据库。

我的问题是,我应该使用哈希吗?哪个? MD5?那已经老了。会议?的.htaccess?从2014年开始向好的方向发展将会非常棒。请记住,任何人恶意攻击此网站的可能性都非常低,并且数据丢失的成本将不存在。

2 个答案:

答案 0 :(得分:0)

我建议对以下内容使用类似的密码加密方式:

$[password_var] = base64_encode(pack('H*',sha1($[password_var])));

您还需要确保自己不受SQL注入的影响,为了最佳实践,我们可以使用PDO - 可以在tutsplus上找到here的快速阅读。

答案 1 :(得分:0)

SHA-2和Blowfish是加密的好方法。最重要的是,加密到Blowfish或SHA-2非常慢,这使得强制执行需要花费很多时间。

河豚的一个例子:

//Generating salt, must be 22 characters or more for blowfish. You can make a function for this.
$some_str = md5(uniqid(mt_rand(), true));
$base_64str = base64_encode($some_str);
$modified_base64 = str_replace('+', '.', $base_64str);
$salt = substr($modified_base64, 0, 22);

//Format String i.e. which method we will be using and how many times the password will be encrypted.
$format_str = "$2y$10$"; // 2y for Blowfish and 10 times.

$fs = $format_str . $salt;
$hased_pass = crypt($password, $fs);

并且还使用会话来记住用户。