保护网页免受ajax请求


protect web page from ajax request

我想知道最好的方法来保护我的php脚本从ajax请求不是来自我的网站或使用Access-Control-Allow-Origin。因为外部页面可以用ajax请求调用我的php代码。由于

HTTP头设置在您的HTTP服务器上,例如Apache。因此,如果您没有在Apache(在Apache .conf或.htaccess文件中)或PHP(使用header()函数)中设置Access-Control-Allow-Origin标头,则默认情况下不允许跨域请求

否则,如果你需要,你可以在这个头中设置唯一允许请求你的服务器的域。

请注意,在@FluxCoder的回答代码是不安全的,因为HTTP_REFERER是由Web浏览器设置和发送的,所以它可以很容易地被任何用户入侵。

您可以使用PHP来确定http - reference,但这可能会导致一个问题,因为它可能根本无法帮助您,这取决于谁是通过Ajax请求针对您的网站,您可以使用下面的代码,其中Ajax请求被接受。

代码:

$website = "http://domain.com/";
if(preg_match("%".$website."%", $_SERVER['HTTP_REFERER'])){
  //Allowed
} else {
  //Not Allowed
}

除此之外,我真的不认为在PHP中使用HTTP_REFERER有很多其他的选择。