php - PHP:登录后发出用户特定请求
问题描述
我在脑海中挣扎着一个小问题。
因此,用户尝试登录。如果用户名和密码正确,他将重定向到仪表板。我将设置一些会话变量,如用户 ID 和用户名。
- 第一个问题:这些变量可以被操纵吗?我想显示登录的用户名。我可以从 Session 变量中使用它还是需要总是从数据库中获取它?
接下来,当他登录时,用户应该只查看他的私人照片。我有一个 PHP 请求,它以 JSON 格式返回图像文件。它运作良好。但是我怎样才能让它安全并保存呢?
- 我应该向该 JSON 发布什么参数?只是从 Session 变量中发布一个用户 ID?但是如果有人试图调用那个 PHP 并且只是改变了用户 ID 怎么办?他会得到别人的照片吗?我怎样才能确定提出请求的人真的是那个人?
提前致谢。我对这个话题非常感兴趣,我很想了解更多。
解决方案
第一个问题:这些变量可以被操纵吗?我想显示登录的用户名。我可以从 Session 变量中使用它还是需要总是从数据库中获取它?
首先,在 session 中设置 userid 并根据它检索数据
userid
。使用全局变量进行登录是安全的,例如:$_SESSION["is_login"] = true;
请先验证两者是否存在,
userid
然后is_login
您的页面应该进一步移动,否则它必须显示错误。
接下来,当他登录时,用户应该只查看他的私人照片。我有一个 PHP 请求,它以 JSON 格式返回图像文件。它运作良好。但是我怎样才能让它安全并保存呢?
我应该向该 JSON 发布什么参数?只是从 Session 变量中发布一个用户 ID?但是如果有人试图调用那个 PHP 并且只是改变了用户 ID 怎么办?他会得到别人的照片吗?我怎样才能确定提出请求的人真的是那个人?
您应该将加密的
userid
或传递is_login
给 url 并对其进行验证以检查它是否为真?否则使用默认图像而不是用户图像
推荐阅读
- javascript - 如何使用 axios 将文件从 VueJS 发送到 API/ExpressJS
- r - 是否有 R(ggplot 或其他)来增加线/段宽度
- css - Ant Design Steps 连接器的自定义样式?
- javascript - 最短路径的中继系统(计算起点和终点之间的中继点)
- python - 如何将一个数组附加到另一个数组,同时在 Python 中保持两个数组彼此分开
- android - Intent.createChooser 取消并再次共享后乘以选择器
- typescript - 如何在我的声明文件中从库中导入和引用类型
- r - 尽管“na.action”设置为“na.roughfix”,但缺少值错误
- php - Laravel - 找不到列:'full_name'
- namespaces - Sphinx 是改名为 Sphinx-doc,还是只是 Sphinx?