2

我有一个转到 php 文件的 ajax 表单,我不希望用户能够直接将 php 文件输入到 URL 栏中,所以如果他们输入该 php 文件,我将如何重定向他们,我不能简单地添加一个header("location:index.html")或者表格不起作用。

<?php
$Reg['E'] = 'Test';

echo json_encode($Reg);
?>
4

1 回答 1

2

没有办法 100% 确定,因为 ajax 请求与任何其他请求相比在技术上没有什么特别之处。如果您使用的是 jQuery,则可以检查X-Requested-With标题:

if (strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' )

...否则重定向。您还可以将令牌放入随机md5散列等形式,并检查该令牌是否与请求一起提交(与值存储会话相比)。这至少需要先访问表单页面才能生成令牌,而“普通”用户将无法获得令牌。

于 2013-02-17T21:28:03.663 回答