我从像这样的ajax调用php代码:
ajaxRequest.open("GET", "func.php" + queryString, true);
由于这是一个获取请求,因此任何人都可以通过简单地检查标头来查看它。传递的数据不敏感,但由于获取参数名称也很容易,因此有可能被滥用。
如何阻止直接访问http://mysite/func.php却允许我的ajax页面访问它?
大多数Ajax请求/框架都应设置此特定标头,以用于过滤Ajax v非Ajax请求。我用它来帮助确定许多项目中的响应类型(json / html):
if( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && ( $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest' ) ) { // allow access.... } else { // ignore.... }
编辑:您可以在自己的Ajax请求中将此添加为自己,并在javascript代码中添加以下内容:
var xhrobj = new XMLHttpRequest(); xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");