Php 密码保护页面的最佳方法
所以,我正在为一个体育联盟做一件事,我是其中的一员,并且已经建立了一个看起来相当专业的网站 我设置了这个,这样联盟的人就可以发布新闻,更新阶梯,赛程等等 但是,我不确定实现登录区域以保护这些允许用户上载文件/更改mysql表数据的页面的最佳方法。一个简单的谷歌搜索给了我太多的选择来筛选,以确定什么是合适的,什么是最新的,很多结果都是多年前的 我不需要为我编写代码,我只需要知道目前最好的做法是什么,一个简单的登录可以保护5或6个页面,可能有3或4个不同的用户/密码组合。服务器运行的是PHP5.4,我可以使用许多linux托管的MySQL数据库Php 密码保护页面的最佳方法,php,mysql,.htaccess,session,passwords,Php,Mysql,.htaccess,Session,Passwords,所以,我正在为一个体育联盟做一件事,我是其中的一员,并且已经建立了一个看起来相当专业的网站 我设置了这个,这样联盟的人就可以发布新闻,更新阶梯,赛程等等 但是,我不确定实现登录区域以保护这些允许用户上载文件/更改mysql表数据的页面的最佳方法。一个简单的谷歌搜索给了我太多的选择来筛选,以确定什么是合适的,什么是最新的,很多结果都是多年前的 我不需要为我编写代码,我只需要知道目前最好的做法是什么,一个简单的登录可以保护5或6个页面,可能有3或4个不同的用户/密码组合。服务器运行的是PHP5.4,
我的问题是,我应该使用散列吗?哪一个?MD5?现在应该已经老了。会议。htaccess?从2014年开始,朝着一个好的方向戳一戳将是非常棒的。请记住,在我看来,任何人恶意攻击此网站的几率非常低,数据丢失的成本也不存在。我建议使用与以下类似的密码加密方式:
$[password_var] = base64_encode(pack('H*',sha1($[password_var])));
您还需要确保自己不受SQL注入的影响,为了获得最佳实践,请使用PDO-可以在tutsplus上找到快速阅读。SHA-2和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);
也可以使用会话来记住用户。.htaccess保护目录对于您描述的有限用途来说应该是令人满意的