保护网页免受ajax请求

时间:2016-09-13 18:58:32

标签: php ajax

我想知道保护我的php脚本免受来自我的网站或使用Access-Control-Allow-Origin的ajax请求的最佳方法。因为外部页面可以使用ajax请求调用我的php代码。 感谢

2 个答案:

答案 0 :(得分:2)

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

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

请注意,在@ FluxCoder的回答中,代码不安全,因为Web浏览器设置并发送HTTP_REFERER,因此任何用户都可以轻松攻击它。

答案 1 :(得分:0)

您可以使用PHP来确定HTTP-REFER,但这可能会导致问题,因为它可能根本无法帮助您,具体取决于谁通过Ajax请求定位您的站点,您可以使用下面的代码,其中Ajax请求是接受。

代码:

$website = "http://domain.com/";

if(preg_match("%".$website."%", $_SERVER['HTTP_REFERER'])){
  //Allowed
} else {
  //Not Allowed
}

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