use*_*431 7 php encryption passwords session
我正在编写一个允许用户注册的PHP站点,注册和未注册的用户都可以为学校站点输入各自的用户名和密码(例如smith8h4ft- j9hsbnuio).
然后,我的PHP脚本发送一些$_POST变量,下载并解析标记页面,创建一个名为:的数组
marksDB = Array("subject" => Array("A", "B", "A", "C"), ...),并将其重新格式化.
我的问题是: 我应该如何保持用户名和密码的安全?
对于未注册的用户,我目前忘记了用户名和密码并将其marksDB放入$_SESSION.当用户处于非活动状态例如30分钟时,将删除marksDB.这些数据的安全性如何$_SESSION?用户如何登录,查看页面一次,再也不会再查看,那么脚本不会从会话中删除marksDB?会话是否自动删除(gc.maxlifetime)?
注册用户呢?我希望一切都安全,但我不想每30分钟不活动时用密码提示来惹恼用户.加密这里描述的凭证是否安全,但没有第三个用户设置的密码?或者我每次都要问用户他的密码?
编辑:
感谢快速回复,
@Justinᚅᚔᚈᚄᚒᚔ:我怀疑他们有一些API,但我可以问他们,只是为了案例
@Abid Hussain:感谢非常有用的链接.(也谢谢你的答案).
我将抛弃用户的凭据并且只进行解析markDB,我也可能将其丢弃(在注销或不活动之后) - 在需要时再次检索标记很便宜.
如果学校网站没有为此公开 API(例如,像 StackExchange 网站那样使用 OAuth),那么您的选择就很有限。
一般来说,保留用户明文凭证的时间永远不要超过绝对必要的时间。您可以想象的任何可能的尝试方式(会话劫持、被盗密钥、解密等)都存在安全隐患。
更好的方法可能是让标记下载过程严格由用户启动。给他们一个“检索我的标记”的按钮,然后在那里完成身份验证过程,下载标记,然后扔掉他们的凭据。每次“同步”时,他们都应该进行身份验证。除非标记经常发生变化,否则您没有理由不能立即下载所需的所有信息,然后将其安全地缓存在服务器上以供以后使用。
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |