【问题标题】:Best Method Password Protected Pages最佳方法密码保护页面
【发布时间】:2014-09-12 20:47:46
【问题描述】:

所以我为一个体育联盟帮了一个忙,我已经建立了一个看起来相当专业的网站。

我已经设置好了,这样联盟中的某个人就可以发布新闻、更新天梯、赛程等。

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

我不需要为我编写代码,我只需要了解目前的最佳实践是什么,可以通过简单的登录来保护 5 或 6 个页面以及 3 或 4 个不同的用户/密码组合。该服务器运行 PHP5.4,并且有许多可用的 Linux 托管 MySQL 数据库。

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

【问题讨论】:

  • .htaccess 保护目录应该满足您描述的有限目的

标签: php mysql .htaccess session passwords


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    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);
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-10
      • 2011-06-21
      • 2017-02-03
      相关资源
      最近更新 更多