我需要直接但安全(不是诺克斯堡,但明智的)登录到我的PHP网站。我在想这些步骤是:
用户通过HTTPS访问网站
在登录屏幕上输入的用户名和密码,在服务器上进行哈希处理,并与预先记录的密码(从注册时开始)进行比较,存储在用户记录的数据库中。我打算用password_hash
进行散列(使用盐)
所有数据库查询都使用参数绑定来防止SQL注入
当用户登录后,我设置cdr
并使用$_SESSION['logged_in'] = true
我设置session_regenerate_id
选项
我在这里缺少什么?
另外,我不确定防范CSRF,XSS攻击以及任何建议的最佳方法吗?
如果相关,我将托管在Google App Engine上,并使用他们的NoSQL Cloud Datastore作为我的数据库,并使用PHP-GDS lib(https://github.com/tomwalder/php-gds)作为我的数据库界面。
答案 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 "<" and so on...
echo htmlspecialchars( $foo );