我想知道保护我的php脚本免受来自我的网站或使用Access-Control-Allow-Origin的ajax请求的最佳方法。因为外部页面可以使用ajax请求调用我的php代码。 感谢
答案 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之外还有很多其他选择。