12 12
发新话题
 搜藏 打印 该页面添加到 Mister Wong

apache 防盗链两例

apache 防盗链两例

1.利用rewrite 确认你的apache 能使用rewrite mod
  RewriteEngine on
  RewriteCond %{HTTP_REFERER} !^http://linuxsky.net/.*$      [NC]
  RewriteCond %{HTTP_REFERER} !^http://linuxsky.net$      [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.linuxsky.net/.*$      [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.linuxsky.net$      [NC]
  RewriteRule .*\.(gif|jpb|png|css|js|swf])$ http://www.linuxsky.net [R,NC]

其中有色的地方都是要改为你的:
 红色:就是改为你提供下载页面的地址,也就是只有通过这个地址才可以下载你所提供的东东。
 蓝色:就是要保护文件的扩展名(以|分开),也就是说以这些为扩展名的文件只有通过红色的地址才可以访问。
 绿色:如果不是通过红色的地址访问蓝色这些为扩展名的文件时就回重定向到绿色地址上。


2.利用SetEnvIfNoCase 和 access

    SetEnvIfNoCase Referer "^http://linuxsky.net" local_ref=1
    SetEnvIfNoCase Referer "^http://www.linuxsky.net" local_ref=1
    <FilesMatch "\.(gif|jpb|png|css|js|swf)">
        Order Allow,Deny
        Allow from env=local_ref
    </FilesMatch>

红色为信任站点,蓝色为受保护的文件扩展名。

本文由hew 发布于Linuxsky 论坛,网址:http://bbs.linuxsky.org/thread-1768-1-1.html

你的鼓励,我的动力.
做人厚道,看贴回贴.
my linux blog

TOP

利用rewrite 确认你的apache 能使用rewrite mod
是什么意思啊

我把你的代码复制到httpd.conf里边 apache就不能启动了我用的是win下的2.0.55版本

TOP

要确认你的apache 开启了rewrite mod,你复制了那一段,不能启动提示什么?
你的鼓励,我的动力.
做人厚道,看贴回贴.
my linux blog

TOP

如何确认apache 开启了rewrite mod呢????
我是安装的win下2.0.55版本的默认安装

TOP

默认应该是有的,你复制了哪段啊?
1,2 任选一种即可,而且没给不能启动的提示啊。
你的鼓励,我的动力.
做人厚道,看贴回贴.
my linux blog

TOP

我将
  RewriteEngine on
  RewriteCond %{HTTP_REFERER} !^http://linuxsky.net/.*$      [NC]
  RewriteCond %{HTTP_REFERER} !^http://linuxsky.net$      [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.linuxsky.net/.*$      [NC]
  RewriteCond %{HTTP_REFERER} !^http://www.linuxsky.net$      [NC]
  RewriteRule .*\.(gif|jpb|png|css|js|swf])$ http://www.linuxsky.net [R,NC]
复制到httpd.conf的最后边 保存 重新启动apache 却出现错误 如图:

TOP

这个提示一点建设性都没用,win 下的apache 没日志吗?
你的鼓励,我的动力.
做人厚道,看贴回贴.
my linux blog

TOP

[Sun Mar 12 11:39:47 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 12:55:09 2006] [notice] Apache/2.0.55 (Win32) configured -- resuming normal operations
[Sun Mar 12 12:55:09 2006] [notice] Server built: Oct  9 2005 19:16:56
[Sun Mar 12 12:55:09 2006] [notice] Parent: Created child process 1808
[Sun Mar 12 12:55:10 2006] [notice] Child 1808: Child process is running
[Sun Mar 12 12:55:11 2006] [notice] Child 1808: Acquired the start mutex.
[Sun Mar 12 12:55:11 2006] [notice] Child 1808: Starting 250 worker threads.
[Sun Mar 12 13:55:32 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 14:18:33 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 14:23:31 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 15:57:47 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 16:17:42 2006] [notice] Parent: Received restart signal -- Restarting the server.
[Sun Mar 12 16:17:42 2006] [notice] Child 1808: Exit event signaled. Child process is ending.
[Sun Mar 12 16:17:42 2006] [warn] (OS 995)由于线程退出或应用程序请求,已放弃 I/O 操作。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 16:17:43 2006] [notice] Child 1808: Released the start mutex
[Sun Mar 12 16:17:44 2006] [notice] Child 1808: Waiting for 250 worker threads to exit.
[Sun Mar 12 16:17:44 2006] [notice] Child 1808: All worker threads have exited.
[Sun Mar 12 16:17:44 2006] [notice] Child 1808: Child process is exiting
[Sun Mar 12 16:18:29 2006] [warn] pid file C:/Program Files/Apache Group/Apache2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Sun Mar 12 16:18:29 2006] [notice] Apache/2.0.55 (Win32) configured -- resuming normal operations
[Sun Mar 12 16:18:29 2006] [notice] Server built: Oct  9 2005 19:16:56
[Sun Mar 12 16:18:29 2006] [notice] Parent: Created child process 560
[Sun Mar 12 16:18:29 2006] [notice] Child 560: Child process is running
[Sun Mar 12 16:18:29 2006] [notice] Child 560: Acquired the start mutex.
[Sun Mar 12 16:18:29 2006] [notice] Child 560: Starting 250 worker threads.
[Sun Mar 12 16:25:11 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 16:36:56 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 16:52:42 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
[Sun Mar 12 17:07:30 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.

TOP

没看到关于rewrite 的信息

但是
[Sun Mar 12 16:25:11 2006] [warn] (OS 121)信号灯超时时间已到。  : winnt_accept: Asynchronous AcceptEx failed.
可以这样做
在httpd.conf文件中添加 Win32DisableAcceptEx 标记,如下:
<IfModule mpm_winnt.c>
ThreadsPerChild 1000
MaxRequestsPerChild  10000
Win32DisableAcceptEx
</IfModule>

具体可以看下面的链接
http://httpd.apache.org/docs/2.0/mod/mpm_winnt.html
你的鼓励,我的动力.
做人厚道,看贴回贴.
my linux blog

TOP

把你说的那个拷贝到conf里边 然后使用第2个方法 apache正常启动了 不知道能不能防盗 谢谢 我测试一下

TOP

 12 12
发新话题