PHP – 加密其他站点的用户名和密码

我正在编写一个允许用户注册PHP站点,注册和未注册用户都可以为学校站点输入各自的用户名和密码(例如smith8h4ft – j9hsbnuio).

然后,我的PHP脚本发送一些$_POST变量,下载并解析标记页面,生成一个名为的数组:
marksDB = Array(“subject”=>数组(“A”,“B”,“A”,“C”),…),并将其重新格式化.

我的问题是:
我该如何保证用户名和密码安全?

对于未注册用户,我目前忘记了用户名和密码,并将marksDB放入$_SESSION.当用户不活动时,例如30分钟后,marksDB被删除.这些数据在$_SESSION中有多安全?用户如何登录,查看页面一次,再也不会再查看,那么脚本不会从会话中删除marksDB?会话是否自动删除(gc.maxlifetime)?

注册用户呢?我希望一切都安全,但我不想每30分钟不活动时用密码提示来惹恼用户.加密如here所述的凭证是否安全,但没有第三个用户设置的密码?或者我每次都要问用户他的密码?

编辑:

感谢您的快速回复,
@Justinᚅᚔᚈᚄᚒᚔ:我怀疑他们有一些API,但我可以问他们,只是为了案例
@Abid Hussain:感谢非常有用的链接. (也谢谢你的答案).
我将抛弃用户的凭据,并且只解析了markDB,我也可能会丢弃它(在注销或不活动之后) – 在需要时再次检索标记很便宜.

如果学校网站没有公开API(例如,using OAuth like the StackExchange sites do),那么您的选项是有限的.

一般来说,保持用户的明文凭证的时间超过绝对必要的时间永远不是一个好主意.对于您可以想象的任何可能的方式存在安全隐患(会话劫持,被盗密钥,解密等).

更好的方法可能是使标记下载过程严格由用户启动.给他们一个“检索我的标记”的按钮,然后在那里完成身份验证过程,下载标记并丢弃他们的凭据.每次他们“同步”时,他们都必须进行身份验证.除非标记经常定期更改,否则您无法立即下载所需的所有信息,然后将其安全地缓存在服务器上以供日后使用.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...