Apache简单防盗链

[不指定 2005/03/31 23:11 | by ipaddr ]
防盗链设置样本:

SetEnvIf Referer "^http://(.)+\.ilinux\.cn/" local_ref=1
SetEnvIf Referer "^http://(.)+\.isql\.cn/" local_ref=1
#SetEnvIf Referer "^http://(.)+\.other\.org\.cn/" local_ref=1
SetEnvIf Request_URI "/logo(.)+" local_ref=0
<FilesMatch "\.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip|mp3)">
Order Allow,Deny
Allow from env=local_ref
</FilesMatch>

解释:
1. 蓝色部分,表示设置允许访问的referer地址,第一行的意思为所有http协议访问,以.ilinux.cn结尾的域名地址,第二行类似,只是换成了.isql.cn,表问我前面的鬼符是什么,不懂得可以去翻正则表达式的研究文献,不想深究的可以照猫画虎设置自己的网站。
2. 绿色部分,表示不在上述引用域名范围内,但可以被放行的特例,本例中表示网站/目录,所有以logo开头的文件(用作允许其它网站的友情连接引用本站logo)。
3. 橙色部分是设置反盗链的关键部分,上面每一个设置都联系到了local_ref这个环境变量,只有这个变量为1,则允许被引用,否则显示一个X。
4. 紫色部分设置了哪些扩展名的文件加入反盗链的规则。

补充:
我是直接设置在httpd.conf里面的,如果只想针对哪个目录设置,可以放在目录的.htaccess文件内。
另外,网上好多文档,都有错误,把SetEnvIf写成了SetEnvIfNoCase


附我以前用mod_rewrite写的
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://bbs.ilinux.cn$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.ilinux.cn$      [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://ilinux.cn$      [NC]
RewriteRule .*\.(mp3|wmv|png|gif|jpg|jpeg|avi|bmp|ram|rmvb|rm|rar|zip)$ http://www.ilinux.cn [R,NC]
上面的,需要Rewrite模板.所有指定的文件,如果Referer不是上面的值,将被重定向到首页.

转自 www.pczone.com.tw

以下是以UNIX(FREEBSD..LINUX等)+APACHE架站的人適用
只要設定1次,就不需再去設別的資料,
你也不需要1個1個去擋盜連來源的IP,這樣開站豈不是太累人了???
一天到晚要去檢查LOG...@@

首先在你的網站根目錄下開個.htaccess這個檔案,裡面寫下面資料:
以下是用PCZONE當例子,請換成你自己的網址
(如果你不是實體主機,沒有自己的固定IP,下面第3列的IP資料就不用去設定ㄛ)

SetEnvIfNoCase Referer "^http://www\.pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://202\.43\.85\.163/" local_ref=1
<FilesMatch "\.(txt|doc|gif|jpg|mp3)"> <--這邊隨你喜好自己設
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>

當你這樣寫好後,把檔案擺到網站的根目錄就OK
你網站上的檔案(凡是上面有設定到的,像TXT、DOC...)只能從站內被取用,
如果有人的來源是其它網站,因為來源IP不是你所允許的127.0.0.1主機內部,
因此在你主機空間被你設定的檔案、圖片、MP3就不會被人順利盜連了....

只要是經過你按上面步驟指名要求到的檔案
不管是GIF圖檔、影音檔、壓縮檔、程式..還是其他有的沒的..
只要你在.htaccess有設定到
全部、統統都有防止盜連的效果
這樣你的主機頻寬就不會被人給佔光或搞到流量破表被主機公司追債

只要你設定過,訪客就無法直接盜連(除非用軟體抓網站,但這應該是叫做"下載"網站檔案..)
.htaccess這9個字已經是完整的檔名,他沒有副檔名,千萬不要自己亂加副檔名,
開頭的.號代表是隱藏檔的意思!

經站友新的回報:WIN+APACHE可以使用上面的方法防止盜連


有人問說,如果要開放某些站台可以直接連結自己網站內的資料,該怎麼辦?

例如你想開放pczone.com.tw站上的貼圖,可以直接從自己的網站被連結使用,
那麼請在.htaccess檔案加入下面這新的3行字:

(以下這樣設定代表:除了自己網站以及PCZONE網站,其他網站仍無法盜連你站內的資料)

SetEnvIfNoCase Referer "^http://www\.pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://pczone\.com\.tw/" local_ref=1
SetEnvIfNoCase Referer "^http://自己網站的舊資料/" local_ref=
<FilesMatch "\.(txt|doc|gif|jpg|mp3)"> 
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
Allow from 202.43.85.163 <-這個IP,是PCZONE網站的固定IP,一定要打進去!
</FilesMatch>
 
OK就這麼簡單

增加Apache并发数

[不指定 2005/03/21 23:12 | by ipaddr ]
当网站访问量增大时.如果同时连接数超过了Apache默认配置(256),那么,其它人将无法访问.

可以设置MaxClient 256来修改最大连接数.不过,MaxClient最大可以设为256

如果需要更大的话,可以用ServerLimit,如下:

ServerLimit 1024

设置了这个参数后,要把MaxClient注释.
经验总结:

联机日志分为当前联机日志和非当前联机日志,非当前联机日志的损坏是比较简单的,一般通过clear命令就可以解决问题。
损坏非当前联机日志:
1、启动数据库,遇到ORA-00312 or ORA-00313错误,如:
ORA-00313: open failed for members of log group 4 of thread 1
ORA-00312: online log 3 thread 1: '/opt/oracle/db04/oradata/ORCL/redo03.log'
从这里我们知道日志组1的数据文件损坏或丢失了
从报警文件可以看到更详细的信息
2、查看V$log视图:
SQL> select group#,sequence#,archived,status from v$log;
   GROUP#  SEQUENCE# ARC STATUS
---------- ---------- --- ----------------
        1         54 YES INACTIVE
        2         55 NO  CURRENT
3             53 YES INACTIVE

可以知道,该组是非当前状态,而且已经归档。
3、用CLEAR命令重建该日志文件
SQL>alter database clear logfile group 3;
如果是该日志组还没有归档,则需要用
SQL>alter database clear unarchived logfile group 3;
4、打开数据库,重新备份数据库
SQL>alter database open;
说明:
1)、如果损坏的是非当前的联机日志文件,一般只需要clear就可以重建该日志文件,但是如果该数据库处于归档状态但该日志还没有归档,就需要强行clear。
2)、建议clear,特别是强行clear后作一次数据库的全备份。
3)、此方法适用于归档与非归档数据库。
损坏当前联机日志:
归档模式下当前日志的损坏有两种情况,
一、是数据库是正常关闭,日志文件中没有未决的事务需要实例恢复,当前日志组的损坏就可以直接用alter database clear unarchived logfile group n来重建。
二、是日志组中有活动的事务,数据库需要媒体恢复,日志组需要用来同步,有两种补救办法
A. 最好的办法就是通过不完全恢复,可以保证数据库的一致性,但是这种办法要求在归档方式下,并且有可用的备份
B. 通过强制性恢复,但是可能导致数据库不一致。
下面分别用来说明这两种恢复方法
5.1.2.1 通过备份来恢复
1、打开数据库,会遇到一个类似的错误
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: 'D:\ORACLE\ORADATA\TEST\REDO01.LOG'
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) 系统找不到指定的文件

2、查看V$log,发现是当前日志
SQL> select group#,sequence#,archived,status from v$log;

GROUP# SEQUENCE# ARCHIVED STATUS
---------- ---------- -------- ----------------
1 1 NO CURRENT
2 2 YES INACTIVE
3 3 YES INACTIVE

3、发现clear不成功
SQL> alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 1
*
ERROR at line 1:
ORA-01624: log 1 needed for crash recovery of thread 1
ORA-00312: online log 1 thread 1: 'D:\ORACLE\ORADATA\TEST\REDO01.LOG'

4、拷贝有效的数据库的全备份,并不完全恢复数据库
可以采用获取最近的SCN的办法用until scn恢复或用until cnacel恢复
recover database until cancel
先选择auto,尽量恢复可以利用的归档日志,然后重新
recover database until cancel
这次输入cancel,完成不完全恢复,也就是说恢复两次。
如:
SQL> recover database until cancel;
Auto
......
SQL> recover database until cancel;
Cancel;
5、利用alter database open resetlogs打开数据库
说明:
1、这种办法恢复的数据库是一致的不完全恢复,会丢失当前联机日志中的事务数据
2、这种方法适合于归档数据库并且有可用的数据库全备份。
3、恢复成功之后,记得再做一次数据库的全备份。
4、建议联机日志文件一定要实现镜相在不同的磁盘上,避免这种情况的发生,因为任何数据的丢失对于生产来说都是不容许的。





如果没有备份,进行强制性恢复
1、打开数据库,会遇到一个类似的错误
ORA-00313: open failed for members of log group 1 of thread 1
ORA-00312: online log 1 thread 1: 'D:\ORACLE\ORADATA\TEST\REDO01.LOG'
ORA-27041: unable to open file
OSD-04002: unable to open file
O/S-Error: (OS 2) 系统找不到指定的文件

2、查看V$log,发现是当前日志
SQL> select group#,sequence#,archived,status from v$log;

GROUP# SEQUENCE# ARCHIVED STATUS
---------- ---------- -------- ----------------
1 1 NO CURRENT
2 2 YES INACTIVE
3 3 YES INACTIVE

3、发现clear不成功
SQL> alter database clear unarchived logfile group 1;
alter database clear unarchived logfile group 1
*
ERROR at line 1:
ORA-01624: log 1 needed for crash recovery of thread 1
ORA-00312: online log 1 thread 1: 'D:\ORACLE\ORADATA\TEST\REDO01.LOG'

4、把数据库down掉
SQL>shutdown immediate

5、在init.ora中加入如下参数
_allow_resetlogs_corruption=TRUE

6、重新启动数据库,利用until cancel恢复
SQL>recover database until cancel;
Cancel
如果出错,不再理会,发出
SQL>alter database open resetlogs;

7、数据库被打开后,马上执行一个full export

8、shutdown数据库,去掉_all_resetlogs_corrupt参数

9、重建库

10、import并完成恢复

11、建议执行一下ANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;
说明:
1、该恢复方法是没有办法之后的恢复方法,一般情况下建议不要采用,因为该方法可能导致数据库的不一致
2、该方法也丢失数据,但是丢失的数据没有上一种方法的数据多,主要是未写入数据文件的已提交或未提交数据。
3、建议成功后严格执行以上的7到11步,完成数据库的检查与分析
4、全部完成后做一次数据库的全备份
5、建议联机日志文件一定要实现镜相在不同的磁盘上,避免这种情况的发生,因为任何数据的丢失对于生产来说都是不容许的。

JavaScript基本对象

[不指定 2005/03/16 22:29 | by ipaddr ]
原文地址:http://www-900.ibm.com/developerWorks/cn/lotus/lo-jsobj/index.shtml

亲密接触单选按钮、复选框和JavaScript的一些有趣的事情

Apache加装模块

[不指定 2005/03/08 23:13 | by ipaddr ]
Apache安装好后,有时需要加一些模块的.

可以不重新编译整个Apache,而单独编译一个模块,方法如下:

/usr/local/apache2/bin/apxs -c -i /usr/local/src/httpd-2.0.52/modules/generators/mod_cgi.c

再修改/usr/local/apache2/conf/httpd.conf

LoadModule cgi_module         modules/mod_cgi.so

再重启一下Apache

/usr/local/apache2/bin/apachectl restart

APACHE WEB SERVER管理

[不指定 2005/03/04 23:14 | by ipaddr ]
查看当前UNIX环境下有无运行Apache Web Server
      在终端控制台上运行#ps -ef|grep httpd
       如果运行了,会列出一些包含路径信息的进程;去这个路径下找httpd.conf即可知服务器的配置。

启动和关闭Apache Web Server
       在运行Apache/bin路径下找到apachectl命令
       #apachectl start
       #apachectl stop

httpd.conf参数介绍:


知道WEB的管理目录位置
      找到: ServerRoot "/../..."

知道WEB的根目录位置
      找到: DocumentRoot "/../..."

知道WEB各虚拟路径的映射
Alias /icons/ "/opt/www/icons"
..........
ScriptAlias /cgi-bin/ "opt/www/cgi-bin"
..........

支持SSI
在<Directory " DocumentRoot's directory">
增加Option +Includes  +ExecCGI
(其它参数说明:Indexes  容许路径下的目录浏览
                            FollowSymlinks 容许使用符号连接,连到别处
              MultiViews 找相似的文件名)
去掉加注释的以下语句:
AddType text/html .shtml
AddHander server-parsed .shtml
(如果想使htm文件支持SSI,增加以下语句
AddType text/html .htm
AddHander server-parsed .htm
)

支持CGI
去掉加注释的以下语句:
AddHandler cgi-script .pl
AddHander cgi-script .cgi

初始的文件名
DirectoryIndex   index.html
(如果想增加别的类别文件,只需在这后面增加index.htm或index.php即可)

性能优化
MaxKeepAliveRequests 1024
MaxClient 256

给WEB路径加密
创建#htpasswd  -c  加密用户库.db  用户名
new password:****
Re-type new passwd:****

改<Directory " DocumentRoot's directory">
       AllowOverride ALL
     (作用:使每个路径下的.htaccess文件有效)
      </Directory>

在欲加密的路径下建一个隐含文件.htaccess, 内容如下:
AuthType Basic
AuthName Information
AuthUserFile      /directory/加密用户库.db        // 记录用户名密码的隐含文件路径和名称
<Limit GET POST PUT>
require valid-user                     //   容许所有合法用户
require user                //   容许曾创建的用户名
</Limit>


使apache的日志文件里不记录图片文件
     
       找到:   LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
  再后面加上图片文件的类型
    SetEnvIf Request_URI \.gif$ gif-image
    SetEnvIf Request_URI \.GIF$ gif-image
    SetEnvIf Request_URI \.jpg$ gif-image
    SetEnvIf Request_URI \.JPG$ gif-image
    SetEnvIf Request_URI \.png$ gif-image
    SetEnvIf Request_URI \.js$  gif-image    
    SetEnvIf Request_URI \.bmp$ gif-image
    SetEnvIf Request_URI \.css$ gif-image
    SetEnvIf Request_URI \.mid$ gif-image
    SetEnvIf Request_URI \.swf$ gif-image
    SetEnvIf Request_URI \.mmf$ gif-image
    SetEnvIf Request_URI \.wma$ gif-image
    SetEnvIf Request_URI \.midi$ gif-image
  记日志时
    CustomLog /usr/local/apache/logs/access.log combined env=!gif-image

30招让你从头到脚都健康

[不指定 2005/03/03 22:39 | by ipaddr ]
  大脑

  1、把电视机的声音调大,然后看书,5分钟后,把书放下,看5分钟电视,然后再看书。重复3次后,看看你记得多少书上和电视节目的内容。这样每隔两三个星期做一次,能帮助你提高注意力,增强去除杂念和干扰的能力。

  2、做填字游戏是训练大脑的有效方法,做不出来不要紧,重要的是动脑的过程,对增强记忆力非常有帮助。

  3、头部的血管受心脏输出血液的控制,而不是像手脚的血管那样能自行收缩进行自我保护。所以,头发湿的时候不要睡觉,以免引起头痛。

  4、当你感到大脑很疲惫的时候,用吹风机对着头顶正中的"百会"穴吹几分钟,间隔几分钟后再吹,反复几次后疲劳感就会有所缓解。


  眼睛

  5、缓解眼睛疲劳的最佳方式是让眼睛休息,方法简单极了:当你打电话时,如果不需要读什么或者写什么,就把眼睛闭上。

  6、眼睑是眼睛最好的按摩师,特意眨眼并转动眼球10次,一天重复若干次,有助于清洁眼睛并能缓解眼部疲劳。

  7、游泳是女性朋友最爱的运动之一。游泳池中如果没有氯会滋生细菌,但是氯又会引起结膜炎。所以,游泳的时候不管是否将头埋入水中,都应该带上泳镜。

  8、调整你的电脑显示器,它和你应该保持一臂的距离,显示器的上端和你的视线应该是平行的,随时调整对比度、亮度和屏幕上字体的大小。别小看这些字,它们可是像一个个小灯泡一样照着你的眼睛呢。


  牙齿

  9、牙齿洁白剂表面上看效果很好,实际上会磨损牙齿的珐琅质,使得牙齿象牙质暴露出来。而象牙质的颜色比较深,反而让你的牙齿看上去布满了齿渍。

  10、不是越使劲越能把牙齿刷干净,相反,会磨损牙质,引起牙周疾病。最好改用软毛、牙刷头小的牙刷,减少对牙龈的冲击。

  11、每次刷牙的时候,别忘了轻柔地刷刷舌头。

  12、或许你觉得买大块头的"家庭装"牙膏更方便合算,但是,如果你或者家人的牙刷压在牙膏的开口上,而偏偏这时有口腔疾病,细菌就会留在牙膏开口处,在家庭成员中继续传播。所以,还是使用小袋牙膏,以便能经常更换新的牙膏。


  心肺功能

  13、走路是最简单、最省钱的心肺功能训练,每次持续大步走20到30分钟,一周至少2次。

  14、进行有氧训练增强肺活量,还可以这样做:当你吃西红柿或者苹果的时候,大嚼特嚼吧!这两种好吃的菜果中含有丰富的抗氧化成分,对肺有很好的保健作用。而且,想不到吧,咀嚼也能锻炼肺活量呢。

  15、你一定听说过夫妻结婚时间长了,相貌就开始相像起来。现在,医学研究人员发现了一个更有趣的现象,结婚时间越久的夫妻,血压值也越来越相像。可能是和吃同样的食物,一起承受某些情绪等因素有关。因此,如果你做检查的时候发现血压有问题,也一定让你的配偶去做检查。


  免疫系统

  16、腋窝是血管、淋巴、神经最多最丰富的地方,平时要有意识地多多自我按摩腋窝区域,促进血液循环,使各器官充分得到养分和氧气的交换,不仅使大脑、心脏以及肺都受益匪浅,对提高免疫系统功能也很有帮助。

  17、都知道贫血时要补铁,但是,是否贫血应该在去医院做血液检查后才能确定,仅仅凭一些贫血症状就自行服用铁质补充品是危险的。过量的铁对免疫系统的损害很大,一定要在医生的指导下服用。

  18、不要动辄就服用"强力"抗生素,免疫系统功能会在不断的锻炼中不断地增强,尽量使用效力比较弱的抗生素,以免将正常的细胞杀死。


  消化排泄系统
  
  19、当你紧张或者压力大的时候,你能意识到的是自己嘴发干,心跳加速,你可能不知道的是每当这个时候你的肠子也会停止蠕动。所以,看在能方便地"方便"的份上,也不能让自己屈服于压力呀。

  20、尽管很多地方的卫生条件不尽如人意,但是你可以通过消毒湿巾来解决,千万千万不要憋尿。

  21、大笑吧!因为大笑的时候肚皮会震动,这对肠子有很好的按摩作用,能帮助消化,让你远离便秘之苦。


  骨骼、肌肉、关节

  22、不要为了减肥而过度节食,以免造成营养供应严重不足,导致内分泌失调。激素分泌不正常会增加骨质的流失,对骨骼造成严重的伤害。

  23、当你站立的时候,把重量放在一条腿上,胯骨向一侧突出的姿态最伤害你的脊背了。应该让身体的重量平均分散在双腿上。

  24、下次看电视的时候不许坐着啦!只需要10分钟,就能把全身上下伸展运动做完。而且,我们大多数人最需要伸展的是下半身,包括背部下方、臀部和腿部。


  私密地带

  25、千真万确!再注重清洁的你,阴道中也会有大肠杆菌。不过,这些细菌在阴道中时并无大碍,但是一旦从阴道转移到尿道,就会引发尿道感染。最好用卫生巾取代卫生棉条。

  26、丁字型内裤再性感也不要穿。嗯......或者只在"前戏"的那一小段时间穿。

  27、当用润滑剂配合安全套使用时,选择水溶性的润滑剂,不要选择油性的润滑剂,以免安全套不"安全"。

  28、每个月自己检查一次"那个地方",没有什么难为情,如果连你自己都不喜欢自己的身体,怎么会对它格外地呵护呢?洗澡后,坐在床沿边,拿个小镜子观察外阴皮肤,如果发现有深色或者浅色的斑点、小凸起等以前没有的东西,应该去看妇科。不见得一定是因为性或者个人卫生造成的,千万不要怕羞而耽误了。


  双脚

  29、有些时候"100%棉"并不等于100%健康,比如,纯棉质地的袜子。虽然吸汗能力强,却也容易在吸汗后让双脚冰冷,妨碍血液循环。所以,选择合成纤维与棉花混合的袜子对双脚的健康更有利。

  30、保持双脚的柔软。如果你的双脚是柔软的,说明你的神经末梢循环良好。经常按摩双脚,特别是脚趾与脚背、脚趾与脚心连接处。
分页: 1/1 第一页 1 最后页 [ 显示模式: 摘要 | 列表 ]