文章来自:脚本之家
看文章之前先来一组视频教程
2017 PHP从后端-前端-实战30套视频
关联:
密码:
网站盗链会消耗被盗链接网站的大量带宽,但真正的点击率似乎很小php 防盗链,严重损害了被盗网站的利益。 本文主要介绍利用PHP实现防盗链的方法和基本思想。 希望对您有所帮助。 让我们来看看。
盗链是指服务提供商不提供服务本身的内容,通过技术手段绕过其他对最终用户有利的界面(如广告),直接在自己的网站上向最终用户提供其他服务提供商的服务内容,盗用最终用户的观看率和点击率。 受益者不提供资源或提供很少的资源,但真正的服务提供者却没有获得任何利润。 做好避免盗链工作是每个网站开发者的重要任务。
做好防盗链工作可以给网站服务器减轻很多压力。 这里分享一个php防盗链方法
实现方法:
通常的下载步骤为:搜索->输出搜索结果列表->进入软件详细页面->点击下载按钮->打开下载页面->点击下载开始下载
我的办法是在下载页面做文章
首先在网站的公共文件中定义一个$key=sdkfjwojf32413,相当于一个秘钥
在下载页面生成一个随机数:$certcode='84615354'(每次打开时生成的都不一样)
然后利用上面两个变量和软件的ID生成一个md5()加密的字符串
然后生成软件的真实下载地址:file.php?id=5&codekey=ksfjwofsdkfsf
这里的id是软件的序列号。 您可以根据它从数据库中找到软件地址。 $codekey=md5($id.$certcode.$key)
然后将证书代码保存到会话中,
从file.php的参数中获取codekey和id,从public文件中获取$key,然后从session中获取$certcode
验证codekey是否正确,如果不正确则退出php 防盗链,否则执行以下操作
1.删除会话(再次打开该地址将失效)
2、从数据库中读取软件地址,然后读取软件内容,输出(使用PHP文件读取方式输出要下载的软件内容,而不是直接给他下载地址)
这样,如果你想下载,就必须打开自己的下载页面,从你的下载页面打开地址就可以下载,但是每次下载地址都不一样,因为生成的随机数不一样
即使在其他地方连接到你的下载地址,也无法下载。
延伸阅读(具体实现):
1、简易防盗链
$ADMIN[defaulturl]="http://www.vvschool.cn/404.htm";//Hotlink返回的地址
$okaysites=array("http://www.vvschool.cn/","http://www.siyizhu.com");//白名单
$ADMIN[url_1]="http://www.vvschool.cn/temp/download/";//下载位置1
$ADMIN[url_2]="";//下载站点2,用这个推送
$reffer=$HTTP_REFERER;
如果($参考){
$是=0;
while(列表($domain,$subarray)=每个($okaysites)){
if(ereg($subarray,"$reffer")){
$是=1;
$theu="url"."_"."$site";
if($ADMIN[$theu]AND$yes==1){
header("位置:$ADMIN[$theu]/$file");
}别的{
header("位置:$ADMIN[defaulturl]");
}别的{
header("位置:$ADMIN[defaulturl]");
使用方法:将上面的代码保存为dao4.php,比如我测试用的validatecode.rar就在我的网站上,下面的代码用来表示下载连接。
文件名?站点=1&文件=文件
2、服务器防盗链
3、软件下载防盗链方法
//下载的软件根目录相当于当前脚本目录的相对目录
$fileRelPath="../../软件";
// 例外允许连接的网址,注意:自己的域名不需要填写,设置一下确保可以下载,
//空字符串("")表示直接输入URL下载的情况
$excludeReferArr=array("www.wreny.com","wreny.com");
chdir($fileRelPath);
$fileRootPath=getcwd()."/";
$filePath=$HTTP_GET_VARS["文件"];
$url=parse_url($_SERVER["HTTP_REFERER"]);
if($url[host]!=$_SERVER["HTTP_HOST"]&&!in_array($referHost,$excludeReferArr)){
虽然防盗链的方法有很多,但这里只是提供一个大概的思路作为参考:
(1)IIS防盗链,借助ISAPI_Rewrite,可以作为Windows下防盗链的解决方案;
(2)图片防盗链,给图片添加水印,盗链者虽然可以达到目的,但也是在宣传自己的网站。
以上就是PHP防盗链的基本思路和设置方法,希望对您的学习有所帮助。
下面的二维码是小编的微信公众号。 小编每天晚上还会在同学圈分享文章和视频教程。 有需要的朋友可以加入小编一起学习!