javascript - 检查是否从 Javascript 设置了 $_SESSION 变量

标签 javascript php jquery

我正在构建一个消息系统来了解它是如何工作的,我已经有了 几乎所有的东西。我可以登录并在论坛上发帖,但现在我希望能够对其进行编辑。后端准备就绪,接收POST请求

基本上我需要做的是检查当前登录的用户是否是来自 Javascript 的某个帖子的作者,以显示或隐藏编辑按钮。我知道如何判断用户是否从 PHP 登录,以便在您不是作者时阻止请求,但我无法隐藏或显示按钮,因为帖子是从 <template> 动态生成的使用 JS。

登录片段:

$_SESSION["userid"] = $userid;

编辑检查 PHP 片段(有点伪代码):

if ($_POST["action"] == "modifypost" && isset($_POST["postid"]) && isset($_POST["content"]))
{
  $post = get_post($_POST["postid"]);
  if ($post.userid != $_SESSION["userid"])
  {
    die("you are not allowed");
  }
  //MySQL queries
}

后动态生成(缩写):

function add_post(post) {
  var t = document.querySelector('#historypost');
  t.content.querySelector(".content").innerHTML = post.content;

  var clone = document.importNode(t.content, true);
  document.body.appendChild(clone);
}

我最初想用来自 HTML 的用户 ID 设置一个变量 <script><?php ?> ,但随后用户将能够从控制台手动设置该变量并显示按钮。

最佳答案

I had originally thought of setting a variable with the user ID from HTML with <script> and <?php ?>

是的,这是一种正确的方法。基本上,使用 PHP 告诉 JavaScript 哪些帖子实际上属于当前用户。

but then the user would be able to manually set that variable from the console and show the buttons

没错。一旦您将信息发送到浏览器,就没有办法保护信息免受用户干预。这是因为用户可以控制在浏览器中执行的内容。与其将按钮可见性视为一项安全功能,不如将其视为一种便利 - 让用户体验更加愉悦。

应用程序安全性实际上是在服务器上强制执行的。只要确保不允许一个用户编辑另一个用户的帖子,并且不要相信来自浏览器的内容。验证输入。

关于javascript - 检查是否从 Javascript 设置了 $_SESSION 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45395249/

相关文章:

javascript - 如何从 PHP 中创建对象内的 JavaScript 数组

javascript - 在 foreach 循环中使用 $root 值设置 href

javascript - 页面加载时设计表格

php - ErrorException + 取消链接 + 资源暂时不可用 + Laravel 5.5

jquery - 如何更改已经在客户端的网页的字体?

javascript - 我如何在谷歌地图绘图上添加自己的图像或绘图选项

Google map 信息窗口中的 Javascript - 在 IE 中不起作用

php - MySQL 上的 LIMIT 关键字与准备好的语句

jquery touchstart 事件在 iPhone 中不起作用

jquery - 日期选择器 onSelect