防盗链是指在网页制作和浏览时,为防止他人在未经允许情况下盗用自己网站资源,也就是防止其他网站将本站的图片等媒体资源引用到自己的网站上。
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实现防盗链的方法分析
基础教程推荐
猜你喜欢
- MyBatisPlus利用Service实现获取数据列表 2023-01-13
- spring boot实现文件上传 2023-04-12
- Java使用正则表达式对注册页面进行验证功能实现 2024-01-11
- @FeignClient注解中属性contextId的使用说明 2023-01-13
- SpringMVC自定义属性编辑器详解及实例 2023-07-31
- Spring中字段格式化的使用小结 2023-02-04
- 详解velocity模板使javaWeb的html+js实现模块化 2023-08-01
- Java中String类的常用方法总结 2023-06-30
- 详解Spring Hibernate连接oracle数据库的配置 2023-07-31
- Java设计模式中的桥接模式 2023-03-11