好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php?如何防止盗链 php如何做好防盗链

很多站长朋友们都不太清楚php?如何防止盗链,今天小编就来给大家整理php?如何防止盗链,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php 判断来路 2、 phpcms怎么加入防盗链啊大神们帮帮忙 3、 有谁知道PHP5.3怎么弄文字盗链 4、 如何阻止盗链? 5、 如何使用URL Rewrite来防止盗链 php 判断来路

PHP中的 $_SERVER["HTTP_REFERER"] 预定义服务器变量可以判断来路。

$_SESSION['HTTP_REFERER']可以获取当前链接的上一个连接的来源地址,即链接到当前页面的前一页面的 URL 地址。

一般用于判断浏览者是从哪里点击链接跳到本页面的,即所说的来路,还可以通过判断来路来防止盗链。

例如:

<?php

$url_array = parse_url($_SESSION['HTTP_REFERER']);

//如果页面的域名不是服务器域名,就连接到登陆窗口

if($_SERVER['HTTP_HOST'] != $url_array["host"]) {

header("location: login.php");

exit;

}

?>

phpcms怎么加入防盗链啊大神们帮帮忙

跟帖 表示存眷假如体系自带防盗链那样似乎须要动态 并且加重包袱吧 查看原帖>>

采纳哦

有谁知道PHP5.3怎么弄文字盗链

1.简单防盗链

$ADMIN[defaulturl] = "";//盗链返回的地址

$okaysites = array("",""); //白名单

$ADMIN[url_1] = "";//下载地点1

$ADMIN[url_2] = "";//下载地点2,以此类推

$reffer = $HTTP_REFERER;

if($reffer) {

$yes = 0;

while(list($domain, $subarray) = each($okaysites)) {

if (ereg($subarray,"$reffer")) {

$yes = 1;

}

}

$theu = "url"."_"."$site";

if ($ADMIN[$theu] AND $yes == 1) {

header("Location: $ADMIN[$theu]/$file");

} else {

header("Location: $ADMIN[defaulturl]");

}

} else {

header("Location: $ADMIN[defaulturl]");

}

?>

使用方法:将上述代码保存为dao4.php,

比如我测试用的validatecode.rar在我的站点里面,

则用以下代码表示下载连接.

CODE: [Copy to clipboard]

文件名?site=1file=文件

2.服务器防盗链

用到软件 IIS防盗链插件(UUIIS防盗链) 高级免费版

下在地址

2、用请求报文头来判定

请求报文头中通常带有请求页面的URL,看看这个URL是否属于自己域名就可以了

如何阻止盗链?

网站图像防盗----Apache配置妙法 每个网站所有者都在尽力美化自己的网站,使它看上去更酷、更具有吸引力,其中最常见的方法就是使用图片、Logo及Flash等。但是,这也会带来一个问题,因为越漂亮、越吸引人的网站,漂亮的图片和Flash等就容易被别的网站悄悄的盗用。下面我们就一起讨论如何防止网站图像被盗用。

需要解决的问题

简单的说,这里有两种不同的盗用行为:

1. 使用HTML标记IMG在自己的网站中引用网站的图片。

2. 从网站上下载图片,然后放在自己的网站上。

对于第一种的盗用行为,合法网站的图片被用来美化装饰其它网站,这种盗用对合法网站的损害比较大,因为访问非法网站的访问者其实是从合法网站获取图片的,合法网站的日志文件充满了访问请求记录,并且带宽被非法访问消耗,而合法网站却没有得到任何好处。这种类型的盗用通过技术手段完全可以被防止。

第二种类型的盗用相对来说比较阴险,浏览者在非法网站直接访问非法的图片,而合法网站的版权受到侵害,却得不到赔偿,甚至无法发现这种盗用。因为Web的工作方式对这种类型的盗用实际上无法被阻止,但是可以使得这种盗用更加困难。

完全杜绝这两种盗用行为是不现实的,但是通过技术手段可以使得这种盗用非常困难。在Apache环境下,通过配置可以限制网站图片被盗用。

标识需要保护的文件

作为网站管理员,最大的希望就是能够保护网站上所有文档,但是从技术角度考虑这种想法是不现实的,因此我们这里只讨论对图片文件的保护。

作为保护的第一步,首先需要标识出需要保护的文件,然后才能进一步对被标识的文件进行保护。在Apache配置文件中添加如下内容:

<FilesMatch "\.(gif|jpg)"> [这里添加保护限制命令]</FilesMatch>

将容器命令包含在或等容器中,或者单独列出,不处于任何保护容器中,这样就会对网站所有文件进行保护,甚至可以存放在.htaccess文件。将该容器放在不同的位置,保护的范围机会有所不同。

Referer HTTP头字段

当用户访问Web服务器请求一个页面时,用户浏览器发送的HTTP请求中会有一个被称为HTTP请求头(HTTP Request Header)的信息,这个头信息中包含客户请求的一些信息,例如发出请求客户主机的浏览器版本、用户语言、用户操作系统平台、用户请求的文档名等,这些信息以变量名/变量值的方式被传输。

在这些信息中,Referer字段对于实现防止图片盗用非常重要。Referer字段指定客户端最后一个页面的URL地址。例如,如果用户访问页面A,然后点击在页面A上到页面B的链接,访问页面B的HTTP请求会包括一个Referer字段,该字段会包括这样的信息“这个请求是来自于页面A”。如果一个请求不是来自于某个页面,而是用户通过直接在浏览器地址栏输入页面A的URL地址的方式来访问页面A,那么在HTTP请求中则不会包括Referer字段。这样对于我们防止盗链有什么帮助呢?Referer字段是帮助判断对图像的请求是来自自己的页面,还是来自其它网站。

使用SetEnvIf对图像进行标记

作为一个简单的例子,假设需要保护的网站的主页面为,这时候希望限制所有不是源于本网站的网络访问请求(例如只允许访问包含在本网站页面内的图片)。这里可以使用一个环境变量作为一个标记,如果条件满足时就设置该变量,如下所示:

SetEnvIfNoCase Referer "^\.apache\.org/" local_ref=1

当Apache处理一个请求时,它会检查HTTP请求头中的Referer字段,如果该请求来源于本网站(也就是请求页面的URL为本网站域名),则设置环境变量local_ref为1。

在双引号中的字符串是一个正则表达式,只有匹配该正则表达式,环境变量才会被设置。本文不讨论如何使用正则表达式,这里只需要理解SetEnvIf*命令会使用正则表达式作为参数。

SetEnvIfNoCase命令的“NoCase”部分表示这里的正则表达式忽略大小写,''、''或 ''都可以匹配条件。

在访问控制中使用环境变量

Apache配置文件中的Order、Allow和Deny命令可以实现对文档的基于环境变量的访问控制,使用Order、Allow和Deny命令首先要考虑的是Allow和Deny命令的顺序对于Apache处理结果的影响,应该以下面的方式使用:

Order Allow,Deny

这里表示Apache首先处理该HTTP请求相关的Allow命令,然后处理相关的Deny命令。这种处理方式的默认策略是Deny,所以除非有明确的允许的设置,否则该请求就会被拒绝,任何非法访问将无法成功。

因此,在Apache的配置文件httpd.conf中添加如下命令,来实现本地引用发挥作用:

Order Allow,DenyAllow from env=local_ref

这样只有在local_ref变量被定义的情况下,该请求才会被允许;否则其它所有请求和访问将会被拒绝,因为这些请求不满足Allow条件。

注意,请不要在.htaccess和httpd.conf中使用 容器命令,这里不需要该容器命令,除非有特殊的需求,例如希望Get请求和Post请求进行不同的处理。

把这些相关设置放在一起,在Apache的配置文件中就会有如下内容:

SetEnvIfNoCase Referer "^\.apache\.org/" local_ref=1<FilesMatch "\.(gif|jpg)"> Order Allow,Deny Allow from env=local_ref</FilesMatch>

如上配置可以存放在服务器配置文件httpd.conf中,或者存放在.htaccess文件中,最后的效果是一样的:在这些命令作用的范围内,只有从本网站引用的图片才可以被访问。

对图片进行水印处理

上面介绍的方法并不能完全防止图像盗链,这是因为有些执著的盗用者可以伪造Referer值来盗用图片,使相关设置失效,所以不可能完全防止网站图片被盗链,但是上面采取的措施会使得盗链变得很困难。

此外,还有一个防止图片被盗用的方法,就是对网站的图片都进行水印处理。对一个数字图片进行水印处理是指在图片中加入一个特殊的签名编码,并且可以进行验证和检测,数字水印并不会降低图片的质量,甚至可以实现图像被切割以后的剩余部分仍然会包括水印信息。图片被再次编辑、打印,并再次扫描以后,水印仍然可以被检测到。因此,水印技术是一个非常好的保护图片不被盗用的技术。

记录盗用请求

如果想知道自己网站的艺术品是否被盗,可以尝试使用同样的侦测和环境变量来记录可疑请求。例如,在httpd.conf文件中添加如下命令,那么会在 /usr/local/web/apache/logs/poachers_log文件中记录所有具有非法的Referer头信息的访问请求:

SetEnvIfNoCase Referer "!^\.apache\.org/" not_local_ref=1SetEnvIfNoCase Request_URI "\.(gif|jpg)" is_image=1RewriteEngine OnRewriteCond ${ENV:not_local_ref} =1RewriteCond ${ENV:is_image} =1RewriteRule .* - [Last,Env=poach_attempt:1]CustomLog logs/poachers_log CLF env=poach_attempt

在上面代码中,头两行为条件设置标记(也就是没有正确的本地Referer的图片文件),RewriteCond检测是否该标记被设置,然后RewriteRule设置第三个标记,最后一行使得这样的访问请求被记录在特定的文件中。

如何使用URL Rewrite来防止盗链

要阻止他人盗链, 可以使用IIS7的URLrewrite模组(已在Webweb测试数据易网库 IIS7主机预载), 盗连者的站会显示“禁止盗链”的图片。

请把以下代码抄写到根目录,另存为web.config,然后把代码中改成你的网站域名,/images/nohotlinking.jpg为“禁止盗链”的图片,可改成其他路径。

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<system.webServer>

<rewrite>

<rules>

<rule name="Prevent image hotlinking" enabled="true" stopProcessing="true">

<match url=".*\.(gif|jpg|png)$" />

<conditions>

<add input="{HTTP_REFERER}" negate="true" pattern="^$" />

<add input="{HTTP_REFERER}" negate="true" pattern=".*" />

<add input="{HTTP_REFERER}" negate="true" pattern=".*" />

</conditions>

<action type="Rewrite" url="/images/hotlinking.jpg" />

</rule>

</rules>

</rewrite>

</system.webServer>

</configuration>

如网站本身已有web.config ,请把<rewrite> ... </rewrite>一段放到<system.webServer> ... </ system.webServer> 之内。

关于php?如何防止盗链的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php?如何防止盗链 php如何做好防盗链的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did242677
更新时间:2023-05-28   阅读:25次

上一篇: 在线php图片缩放 php怎么设置图片的大小

下一篇:汉语转拼音php 汉语转拼音下载

最新资料更新

  • 1.php加密数据用js解密 php加密 js解密
  • 2.php新浪微博开发 微博开发工具
  • 3.phpnodelay的简单介绍
  • 4.php系统源代码下载 php源码免费下载
  • 5.PHP安装宽带办理 php网站安装
  • 6.php判断多个字符串 php判断字符串包含字符
  • 7.php项目补充redis php+redis
  • 8.php批量取中间 php批量删除数据
  • 9.PHP没有前景吗 php现在怎么样
  • 10.phpapache占有 php apc缓存
  • 11.php微信爬虫 微信爬虫访问是什么
  • 12.php数学函数 php中函数的定义
  • 13.php求100的质数 php求出1100的素数
  • 14.php页面加ico php嵌入网页
  • 15.php换文字颜色 php文字颜色代码
  • 16.phph5开发 php开发程序
  • 17.哈希mapphp 哈希map和哈希table区别
  • 18.php短信android Php短信对接视频
  • 19.php队列和缓存 php中的九大缓存技术
  • 20.phpfpm出错 php报错信息

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]