我有一个简单的帖子请求来自我网站的一个特定页面:
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执行请求,因此我认为我无法添加隐藏的身份验证,以确保整个事情是安全的。因为每个值都在原始页面源代码上看到。
答案 0 :(得分:1)
您似乎正在寻找一种保护自己免受跨站点请求伪造( XSRF )的方法。
防范XSRF的常用方法是在页面上呈现一些时间限制的键(只有一些<script> var mySecret = <?php (someSecret) ?>
)并跟踪这些。例如,您可以使用会话ID的前几个字符,并检查请求数据是否包含此字段。您可以使用类似...&secret=mySecret
之类的内容将其添加到数据中。如果会话ID包含此数据属性的第一个字符,则接受请求,否则您在服务器上拒绝它(可能包含错误代码403) 。
所以这个问题就是
在我的网站上避免使用XSRF的最佳做法
应该在信息安全堆栈交换中询问。