Chinaunix首页 | 论坛 | 博客
  • 博客访问: 145542
  • 博文数量: 68
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 720
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-28 20:01
文章分类

全部博文(68)

文章存档

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没什么差别。

阅读(339) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~