/ 中存储网

Apache使用rewrite实现Nginx中的http_Accesskey_module防盗链模

2014-04-08 16:40:01 来源:ITJS.CN
1. Apache配置Rewrite RewriteEngine on

RewriteMap digest-check prg:/YOUR_PATH/md5.pl

#RewriteMap digest-check prg:/YOUR_PATH/sha1.pl

RewriteCond ${digest-check:%{QUERY_STRING}###%{REMOTE_ADDR}|false} =false

RewriteRule ^/test/(.*) http://yicha.cn/

2. RewriteMap调用的perl脚本

#!/usr/bin/perl

$| = 1;

use Digest::MD5;

$digest = Digest::MD5->new();   #也可以使用SHA-1算法

$pass = "YOURPASS";

while (<STDIN>) {

@input = split("###", $_);

$num = @input;

if($num == 2) {

$query = $input[0];

$addr = $input[1];

if($query =~ m/dig=(.*)/i) {

@param = split("&", $1);

$pdig = $param[0];

$src = $pass.$addr;

$src =~ s/^s+//;

$src =~ s/s+$//;

$digest->add($src);

$cdig = $digest->hexdigest();

if($pdig eq $cdig) {

print "truen";

next; } print "falsen";

}

3. 页面上URL增加参数dig

PHP可以使用dig=<?php echo md5('YOURPASS'.$_SERVER["REMOTE_ADDR"]);?>