工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆
浏览模式: 标准 | 列表2012年02月的文章

防盗链二进阶(squid外部ACL)

服务器防盗链设置,从最简单的referer判断,到进阶的key+time生成md5值,应该说是比较可靠了,而还有一种防盗链方式,基于IP/COOKIE的,这个我没找到太多有用信息,似乎IIS有个相关插件?
只看到一篇squid的相关文章,简单的举了个防盗链的例子,未必有效(因为把cookie做明文处理,相比md5加密实在是防君子不防小人)。倒是从中学习一下external_acl_type用法,对squid进阶一番罢~~
首先按惯例,上权威:《squid中文权威指南》6.1.3章节和12.5章节。
用法如右:external_acl_type name [options] FORMAT.. /path/to/helper
[helper arguments..]
options包括:ttl、negtive_ttl、children、concurrency、cache和grace;
FORMAT包括:%LOGIN,%EXT_USER,%IDENT,%SRC,%SRCPORT,%DST,%PROTO,%PORT,%METHOD,%MYADDR,%MYPORT,%PATH,%USER_CERT,%USER_CERTCHAIN,%USER_CERT_xx,%USER_CA_xx,%{Header},%{Hdr:member},%{Hdr:;member},%ACL,%DATA。
外部程序输出结果必须是OK或者ERR,不过可以再带上一些keyword,比如user/passwd,ERR的messages,access.log里记录的%ea等等。
cookie防盗链举例squid/libexec/check_cookie.pl如下:
#!/usr/bin/perl -w
# 这个脚本仅仅是验证了Cache这个cookie的存在,没有严格的校验其值。
# disable output buffering
$|=1;
while () {
chop;
$cookie=$_;
if( $cookie =~ /$COOKIE/i)
{
print “OKn”;
} else { print “ERRn”;
}
}
squid.conf配置如下:
external_acl_type download children=15 %{Cookie}
squid/libexec/check_cookie.pl
acl dl external download
acl filetype url_regex -i .wmv .wma .asf .asx .avi .mp3
.smi .rm .ram .rmvb .swf .mpg .mpeg .mov .zip .mid
http_access deny filetype !dl
回过头来,想到之前的squid_session一文中,也是用的这个外部ACL~~

php_curl_curl_getinfo

curl_getinfo返回信息

返回的数组中包括了以下信息:
"url"//资源网络地址
"content_type"//内容编码
"http_code"//HTTP状态码
"header_size"//header的大小
"request_size"//请求的大小
"filetime"//文件创建时间
"ssl_verify_result"//SSL验证结果
"redirect_count"//跳转技术
"total_time"//总耗时
"namelookup_time"//DNS查询耗时
"connect_time"//等待连接耗时
"pretransfer_time"//传输前准备耗时
"size_upload"//上传数据的大小
"size_download"//下载数据的大小
"speed_download"//下载速度
"speed_upload"//上传速度
"download_content_length”//下载内容的长度
"upload_content_length"//上传内容的长度
"starttransfer_time"//开始传输的时间
"redirect_time”//重定向耗时

Records:1012