最近我一直试图在我在互联网上偶然发现的登录脚本中实现我自己的安全性.在努力学习如何制作我自己的脚本为每个用户生成一个盐之后,我偶然发现了password_hash.
根据我的理解(基于本页的阅读:http://php.net/manual/en/faq.passwords.php),当您使用password_hash时,已经在行中生成了salt.这是真的?
我的另一个问题是,含有2种盐是不是很聪明?一个直接在文件中,一个在DB中?这样,如果有人在数据库中泄露了你的盐,你仍然直接在文件中?我在这里读到,存储盐绝不是一个明智的想法,但它总是让我困惑的是人们的意思.
我想知道哪个更高效,在PHP中使用$ _SESSION变量存储临时数据(与该会话相关)或从SQL数据库存储和检索?
感谢您的时间.
目前我在构造函数中有一个类存储变量$_SESSION.
有人告诉我不要存储user_id在$_SESSION,因为这时用户可以更改ID到他喜欢的一个,然后从任何帐户自由地访问该网站.相反,我一直保存在session_id和创建一个具有链接表session_id的user_id.
我的问题是 - 操纵这些数据有多难?我的项目也有一个商店系统,我意识到我无法将商店的所有者ID存储在一个$_SESSION变量中.这将导致我至少每页查询数据库以获取数据.
存储此类信息的不安全程度如何$_SESSION?有没有人有更好的解决方案?