防盗链是指在网页制作和浏览时,为防止他人在未经允许情况下盗用自己网站资源,也就是防止其他网站将本站的图片等媒体资源引用到自己的网站上。
PHP实现防盗链的方法分析
什么是防盗链?
防盗链是指在网页制作和浏览时,为防止他人在未经允许情况下盗用自己网站资源,也就是防止其他网站将本站的图片等媒体资源引用到自己的网站上。
PHP实现防盗链的方法
方法一:根据Referrer来判断
在HTTP请求头中,将发送来请求的页面地址和该页面上的链接按照上述格式传送给服务器,这个“发送来请求的页面地址”就是Referrer。
例如:若A网站上有一张图片,B网站引用的时候通过URL的方式指向了A网站的图片,那么在A网站的服务器里,也就是接收方式,服务器判断远程那个网站在调用自己的资源的时候,就会根据请求头中的Referer信息验证调用者是否是合法的网站。
代码示例:
$referer = $_SERVER['HTTP_REFERER'];
// 判断refer是否为空
if (empty($referer)) {
echo "无referer访问";
exit;
}
// 解析当前url
$url = parse_url($referer);
// 获取域名
$refererHost = $url['host'];
// 定义被允许的域名
$allowHosts = array('example1.com', 'example2.com');
// 判断访问的是否允许的refer
if (!in_array($refererHost, $allowHosts)) {
echo "访问来源不允许";
exit;
}
方法二:直接判断HTTP请求头
这个方法与上面的方法类似,不过是直接判断HTTP请求头部包含的关键字,比如公司名称、域名等。这种方式简单实用,但可以被特定的请求头绕过,需要注意。
代码示例:
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH']) || strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
echo "非法访问";
exit;
}
总结
以上是PHP实现防盗链的两种方法,具体使用什么方法可以根据实际情况来选择。需要注意的一点是,防盗链是不能百分百防止盗链,只能降低盗链的概率。
编程基础网
本文标题为:PHP实现防盗链的方法分析
基础教程推荐
猜你喜欢
- dubbo自定义异常的完整步骤与测试 2023-01-02
- Java开发学习之Bean的生命周期详解 2023-01-09
- Spring Boot示例代码整合Redis详解 2023-02-05
- Java socket通信模拟QQ实现多人聊天室 2023-03-06
- 解决Springboot配置excludePathPatterns不生效的问题 2023-06-24
- 基于Zookeeper实现分布式锁详解 2023-08-10
- SpringBoot Profile多环境配置方式 2023-01-23
- java Map接口子类HashMap遍历与LinkedHashMap详解 2023-01-08
- Java面试突击之Bean作用域详解 2023-05-07
- Spring详细讲解@Autowired注解 2023-01-13
