javascript - post请求来自哪个页面

标签 javascript php ajax http-post

我有一个来 self 网站的特定页面的简单发帖请求:

reqdata = 'text=' + mytext;
$.ajax({
  type: "POST",
  url: "/request.php",
  data: reqdata,
  cache: false,
  success: function(html) {
    alert(html)
  }
});

它转到同一站点的另一个页面.. 所以第一页调用页面 mydomain.com/test.php 调用 http 请求到 mydomain.com/request.php

我如何在页面 mydomain.com/request.php 上识别请求来自的原始页面是 mydomain.com/test.php?

我希望确保请求只能从这个确切的页面 mydomain.com/test.php 完成,而不是从其他域或页面完成。

我使用 ajax 和 javascript 执行请求,因此我认为我无法添加隐藏的身份验证来确保整个过程的安全。因为每个值都是在原始页面源代码上看到的。

最佳答案

您似乎正在寻找一种方法来保护自己免受跨站请求伪造 ( XSRF )。

防止 XSRF 的常用方法是在您的页面上呈现一些时间有限的 key (只是一些 <script> var mySecret = <?php (someSecret) ?> )并跟踪这些。例如,您可以使用 session ID 的第一个字符并检查请求数据是否包含此字段。您可以使用类似 ...&secret=mySecret 的方式将其添加到您的数据中当 session ID 包含此数据属性的第一个字符时,您接受该请求,否则您将在您的服务器上拒绝它(可能会出现错误代码 403)。

所以这个问题就是

best practices to avoid XSRF on my site

并且应该在信息安全堆栈交换上询问。

关于javascript - post请求来自哪个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36812404/

相关文章:

php - MVC - Codeigniter - 查看与模型对话

javascript - 单选按钮自动更改php中的数据

javascript - Canvas - 无法创建图像 url

javascript - 返回服务对本地存储的 Angular 数据的 promise

php - 为什么 JSON 只为我的查询返回 1 个图像输出?

javascript - 如何在ajax选项卡上设置简单的淡入/淡出效果

javascript - 从 Ajax JQuery 获取返回字符串的值

javascript - 如何使用 jquery 或 php 根据先前选择的响应保持单选按钮的选择?

javascript - Bootstrap : Why isnt my glyphicon showing?

javascript - 在 React Native 部分列表中过滤数据