Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 密码保护页面的最佳方法_Php_Mysql_.htaccess_Session_Passwords - Fatal编程技术网

Php 密码保护页面的最佳方法

Php 密码保护页面的最佳方法,php,mysql,.htaccess,session,passwords,Php,Mysql,.htaccess,Session,Passwords,所以,我正在为一个体育联盟做一件事,我是其中的一员,并且已经建立了一个看起来相当专业的网站 我设置了这个,这样联盟的人就可以发布新闻,更新阶梯,赛程等等 但是,我不确定实现登录区域以保护这些允许用户上载文件/更改mysql表数据的页面的最佳方法。一个简单的谷歌搜索给了我太多的选择来筛选,以确定什么是合适的,什么是最新的,很多结果都是多年前的 我不需要为我编写代码,我只需要知道目前最好的做法是什么,一个简单的登录可以保护5或6个页面,可能有3或4个不同的用户/密码组合。服务器运行的是PHP5.4,

所以,我正在为一个体育联盟做一件事,我是其中的一员,并且已经建立了一个看起来相当专业的网站

我设置了这个,这样联盟的人就可以发布新闻,更新阶梯,赛程等等

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

我不需要为我编写代码,我只需要知道目前最好的做法是什么,一个简单的登录可以保护5或6个页面,可能有3或4个不同的用户/密码组合。服务器运行的是PHP5.4,我可以使用许多linux托管的MySQL数据库


我的问题是,我应该使用散列吗?哪一个?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保护目录对于您描述的有限用途来说应该是令人满意的