【发布时间】:2019-09-10 21:38:01
【问题描述】:
我需要澄清我对 PHP sessions 的疑虑。
我正在创建一个Android app,在某些活动中我需要进行查询以提取用户数据。
目前,我通过Android app 中的隐藏EditText 将用户id 发送到PHP 文件。
在Android app 中,用户id 未保存在shared preferences 中,但我通过对Facebook Account Kit 的请求获得它(用于身份验证Facebook Account kit)。
所以当我需要用户id 时,我从Facebook Account Kit 请求它,我得到它并通过一个隐藏字段将它发送到PHP 文件,稍后我将在WHERE 子句中使用它Query.
但是,现在,出于安全原因,我更愿意使用sessions 来保存用户id,然后将用户id 保留在session 中。
我的一个朋友告诉我,如果一个黑客获得了session 的id,其中保存了用户id,它可能已经过期并且他无法获得任何东西。
问题是我不明白如何保存session ID 和userID 以及如何在database 表架构级别管理它们。
我必须将session ID 保存在database 中,我创建了一个名为“Sessions”的表,其中包含 3 个字段:
- Session_ID,
- ID_User,
- 数据访问。
要在database 上插入用户ID,我应该始终将其从应用程序传递到PHP 文件,因此如果黑客能够发现用户id,我认为他很可能会得到有关sessions 的信息,带有WHERE 子句ID_user = ID_user。
对吗?
如果我是对的,那么有什么比我做的更安全的呢?
然后,如果Session 的ID 随每次访问而更改,要在MySql 数据库中的Sessions 表中更改它,我应该再次从Android app 切换到PHP 用户@ 987654364@ 并通过查询更新我应该在WHERE 子句中使用ID_User = ID_User 更改会话id 和访问日期。
准确吗?
如果有人对我有任何建议或批评我如何处理这种情况并有比我更好的解决方案,我愿意倾听。
如果我对课程的运作方式一无所知,请提前原谅我偷了你的时间。
还是谢谢。
【问题讨论】:
标签: php android mysql session session-variables