投稿 评论 顶部

伪静态及图片放盗链

佚名 网络安全

?

伪静态及图片放盗链

一、伪静态:

从形式上看是一个静态地址,实际上还是访问的动态地址,

比如:访问:http://www.abc.com/news-sport-id123.html

实际上是:http://www.abc.com/news.php?type=sprot&id=123;

作用:主要是利于seo,静态页面的方式,比较容易被搜索引擎给搜集。

?Localhost/6.php???? 输入localhost/6.html 同样能输出跟6.php同样的内容???

?

1、实现原理:

使用apac he的rewrite机制。

rewrite机制:就是一个url的重写机制,

2、如何开启重写模块,

在httpd.conf文件中进行开启。

?

3、配置方式:

? 1)直接在配置虚拟主机处进行配置 ,每次修改apache的文件都需要重启apache

???<VirtualHost *:80>

? #主机名

??ServerName? localhost

?? #开启重写引擎

?? RewriteEngine on

?? #写重写规则

?? RewriteRule /index.html?/6.php [L]

?? #文件的根目录路径

??DocumentRoot?"E:/server/apache/htdocs"

<Directory? "E:/server/apache/htdocs">

?? #结构样式

? #打开默认的首页

DirectoryIndex? index.php?index.html

#打开默认索引列表??

???Options? Indexes? FollowSymLinks????

?? #权限

? #权限控制?? 先拒绝后允许

??Order Deny,Allow??

?#允许所有用户进行访问

?? AllowOverride All

???Allow from? All???

?</Directory>

</VirtualHost>

?

? 2)分布式配置 具体的.htaccess文件中的配置: 在网站的根目录下创建一个文件,文件名为.htaccess

?<ifModule rewrite_module>(<IfModulemod_rewrite.c>)

?? #打开重写引擎

??RewriteEngin on

??#RewriteCond 判断条件(服务器变量)条件表达式? [条件标志]

??#RewriteRule? 规则url?? 目标url? [规则的标志]

?</ifModule>

?

???????? 示例

<IfModule mod_rewrite.c>

??? RewriteEngine On

??? RewriteCond%{REQUEST_FILENAME} !-d

??? RewriteCond%{REQUEST_FILENAME} !-f

??? RewriteRule ^(.*)$week.php/$1 [L]

</IfModule>

4、具体的语法:

RewriteEngine on? #开启重写引擎

RewriteCond?重写条件,要满足一定的条件才重写。

?

CI框架中的重写规则

第一步:在虚拟主机开启? AllowOverrideAll

第二步: //配置伪静态时在CI框架的配置文件 config中修改 URL协议为

$config['uri_protocol']???? = 'PATH_INFO';

?

RewriteCond条件的语法:

RewriteCond?? 判断依据?? 条件表达式 [条件标志]

?

(1)判断依据:可以使用服务器变量:

RewriteCond%{REQUEST_FILENAME} !-d

RewriteCond%{REQUEST_FILENAME} !-f

比如:%{REQUEST_FILENAME}?表示请求的文件名称

比如:%{HTTP_REFERER}:表示请求的来源。

(2)条件表达式:可以是一些标志,或者字符串

?

比如:

-d?? 表示是一个目录

-f???表示是一个文件

?

RewriteCond%{REQUEST_FILENAME} !-d? //如果请求的路径不是一个目录

RewriteCond%{REQUEST_FILENAME} !-f? //如果请求的路径不是一个文件

(3)[条件标志]

[NC]表示不区分大小写

[OR],在默认情况下多个条件(RewriteCond)之间是并且的关系。如果我们使用或关系则后台添加[OR]标志。

?

?

?

RewriteRule? 语法规则

RewriteRule?? 规则的url可以使用正则)? 目标url? [规则标志]

规则标志

[F] 表示表示禁止重写

[NC] 表示:不区分大小写

?

如何选择真静态和伪静态?

网站实时性要求高,不要使用静态化(真静态,伪静态均不适宜)。

如果网站访问量较小,没有必要使用静态化技术

如果数据项目不多,但是访问频率极大,建议使用真静态,比如新浪新闻频道。

如果数据项目海量,使用真静态会生成海量的html静态页面,建议使用伪静态。

在一个大型网站中,静态化技术是综合使用的,这个需要大家经验的积累,多做项目。(sina网站:新闻频道,真静态,基金频道:伪静态,管理后台:不使用静态技术)

?

?

防盗链的方法以及使用

引子:明明引用了一个正确的图片地址,但显示出来的却是一个红叉或写有“此图片仅限于***网站用户交流沟通使用”之类的“假图片”。用嗅探软件找到了多媒体资源的真实地址用下载软件仍然不能下载。下载一些资源时总是出错,如果确认地址没错的话,大多数情况都是遇上防盗链系统了。常见的防盗链系统,一般使用在图片、音视频、软件等相关的资源上。

一、什么是防盗链系统

????????在确保地址正确的情况下,不能下载相应的资源,均是受到防盗链系统的影响,那么究竟什么是防盗链系统呢?防盗链自然就是防范盗链,所以这里先说一下什么是盗链。
????????盗链是指在自己的页面上展示一些并不在自己服务器上的内容。通常的做法是通过技术手段获得它人服务器上的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。比较常见的是一些小站盗用大站的资源(图片、音乐、视频、软件等),对于这些小站来说,通过盗链的方法可以减轻自己服务器的负担,因为真实的空间和流量均是来自别人的服务器。
????????防盗链系统就是防范盗链的系统,防止别人通过一些技术手段绕过本站的资源展示页面,盗用本站的资源,让绕开本站资源展示页面的资源链接失效。实施防盗链系统后,因为屏蔽了那些盗链的间接资源请求,从而可以大大减轻服务器及带宽的压力,也正如此,越来越多的站点都开始实施防盗链技术。

二、窥视防盗链

????????现在大家应该知道了为什么有真实地址仍然不能下载,这就是防盗链的作用。凡事必有因果,为什么可以防盗链呢,其实现原理是什么?防盗链又是如何实现的呢?
????????提到防盗链的实现原理就不得不从HTTP协议说起,在HTTP协议中,有一个表头字段叫referer,采用URL的格式来表示从哪儿链接到当前的网页或文件。换句话说,通过referer,网站可以检测目标网页访问的来源网页,如果是资源文件,则可以跟踪到显示它的网页地址。有了referer跟踪来源就好办了,这时就可以通过技术手段来进行处理,一旦检测到来源不是本站即进行阻止或者返回指定的页面。
如果想对自己的网站进行防盗链保护,则需要针对不同的情况进行区别对待。如果网站服务器用的是apache,那么使用apache自带的Url Rewrite功能可以很轻松地防止各种盗链,其原理是检查refer,如果refer的信息来自其他网站则重定向到指定图片或网页上。

三、怎么使用防盗链

???????在开始防盗链之前,首先我们要了解重写规则,我们可以浏览Apache手册/指令速查/RewriteCond TestString CondPattern 中了解关于重写的信息。

我们首先得了解referer,也就是网页的来源哪里,我们可以打开一个php,里面打印一下$_SERVER

?

?

示例代码:

RewriteCond %{HTTP_REFERER}??? !http:\/\/better.com\/.*

RewriteRule.*\.(jpg|jpeg|gif|png|txt)??? 110.gif