发布请求来自哪个页面

时间:2016-04-23 15:00:00

标签: javascript php ajax http-post

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

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执行请求,因此我认为我无法添加隐藏的身份验证,以确保整个事情是安全的。因为每个值都在原始页面源代码上看到。

1 个答案:

答案 0 :(得分:1)

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

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

所以这个问题就是

  

在我的网站上避免使用XSRF的最佳做法

应该在信息安全堆栈交换中询问。