2015年(68)
分类: 系统运维
2015-08-31 19:34:00
公司有一API给第三方调用,调用后可以获取一批MP3音源的访问地址,但是不希望被枚举其他音源地址或无限期的调用。最前端是squid,基本的想法是截取访问url的一部份来拼成验证URL去访问验证API,验证成功则返回正确的URL。
squid 配置:
url_rewrite_program /usr/local/squid/etc/redirector.py
redirect_rewrites_host_header off
redirect_children 20
acl 3party url_regex -i ^\.xxxx\.cn/res/thirdparty/[0-9]{16}/
redirector_access allow 3party
redirector_access deny all
重定向器脚本:
#!/usr/bin/python -Ou
import sys
import urllib2
def modify_url(line):
list = line.split(' ')
old_url = list[0]
new_url = '\n'
key = old_url.split('/')[5]
auth_url = '' + key
try:
response = urllib2.urlopen(auth_url)
html = response.read()
except:
html = '0' + new_url
pass
if html == '0\n':
new_url = old_url + new_url
else:
new_url = '302:' + new_url ##失败重定向到公司首页
return new_url
while True:
line = sys.stdin.readline()
new_url = modify_url(line)
sys.stdout.write(new_url)
sys.stdout.flush()
访问量不大,还不知道效率怎么样,现在的访问速度和不需验证的URL没什么差别。