这些是实现安全PHP用户登录的正确步骤吗?

时间:2016-01-21 15:24:33

标签: php security session

我需要直接但安全(不是诺克斯堡,但明智的)登录到我的PHP网站。我在想这些步骤是:

  1. 用户通过HTTPS访问网站

  2. 在登录屏幕上输入的用户名和密码,在服务器上进行哈希处理,并与预先记录的密码(从注册时开始)进行比较,存储在用户记录的数据库中。我打算用password_hash进行散列(使用盐)

  3. 所有数据库查询都使用参数绑定来防止SQL注入

  4. 当用户登录后,我设置cdr并使用$_SESSION['logged_in'] = true

  5. 我设置session_regenerate_id选项

  6. 我在这里缺少什么?

    另外,我不确定防范CSRF,XSS攻击以及任何建议的最佳方法吗?

    如果相关,我将托管在Google App Engine上,并使用他们的NoSQL Cloud Datastore作为我的数据库,并使用PHP-GDS lib(https://github.com/tomwalder/php-gds)作为我的数据库界面。

1 个答案:

答案 0 :(得分:2)

如果你要回显任何用户输入数据,你需要使用PHP的htmlspecialchars()函数来逃避它,以防止XSS攻击。

$foo = '<script>alert("This is bad!")</script>';

// produces a browser alert!
echo $foo;

// just write down the "<script>alert("This is bad!")</script>" string,
// because it converts "<" to "&lt;" and so on...
echo htmlspecialchars( $foo );