这是PHP Sessions的新手.我存储的用户数据很小,不是很敏感,但我当然还想要一个安全的网站.我已经使用salt将他们的密码哈希存储在我的数据库中.
我是否需要使用他们的密码在我网站的每个页面上验证用户,或者是否过度杀伤?换句话说,如果他们已经成功“登录”并且我已经在PHP会话中存储了他们的用户名,那么他们就可以漫游,网站知道他们是谁?
我问,因为在会话中存储用户密码似乎不是最好的主意.真的吗?
您不需要对每个请求进行身份验证,但您需要对每个请求进行授权.
身份验证是您根据数据库验证用户的用户名/密码的位置.成功通过身份验证后,您只需将其用户ID(或用户名)存储在会话中.
在每个后续请求中,检查以确保当前会话有权查看请求的内容.在您的情况下,您可能只需要确保会话中有一个有效的用户ID …您不必对数据库执行任何操作.
function isAuthorized() { return isset($_SESSION['user_id']) && ($_SESSION['user_id'] != 0); }
您可以通过在数据库中管理自己的会话数据来使这更加安全,然后您就不必非常相信cookie(恶意)用户可以交易/窃取/等等.但对于大多数网络应用来说,这通常是过度杀伤力.