如何保护 PAC 文件中的 HTTP 代理不被恶意滥用? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Tink
V2EX    问与答

如何保护 PAC 文件中的 HTTP 代理不被恶意滥用?

  •  
  •   Tink
    PRO
    2017-06-22 15:19:36 +08:00 5219 次点击
    这是一个创建于 3101 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前想了个方法,用 nginx 给 pac 文件加上 basic_auth,但是发现在 windows 系统中没法使用 http://abc:[email protected]/proxy.pac 这样的形式填入自动代理设置。。

    iOS 和 Mac 都没问题,那么问题来了,怎么保护 pac 文件里的 http 代理呢
    25 条回复    2017-06-22 22:09:06 +08:00
    cloverstd
        1
    cloverstd  
       2017-06-22 15:59:54 +08:00
    我知道网上的免费代理哪里来的
    Tink
        2
    Tink  
    OP
    PRO
       2017-06-22 16:04:16 +08:00
    @cloverstd #1 大多数是扫出来的吧,这个可以装个防扫的东西就行了,主要是如果 pac 文件被别人拿到了,那就是明文了,都不需要扫
    miaomiao888
        3
    miaomiao888  
       2017-06-22 16:07:19 +08:00
    给 PAC 文件混淆加密
    Tink
        4
    Tink  
    OP
    PRO
       2017-06-22 16:12:17 +08:00
    @miaomiao888 #3 求一个教程,很关键!
    miaomiao888
        5
    miaomiao888  
       2017-06-22 16:18:27 +08:00
    @Tink 没有教程,但似乎 PAC 也是用的 JS 语法,所以应该用 JS 混淆也行
    https://raw.githubusercontent.com/bannedbook/fanqiang/master/jw/new.pac
    Tink
        6
    Tink  
    OP
    PRO
       2017-06-22 16:21:22 +08:00
    @miaomiao888 #5 明白了,多谢!
    0ZXYDDu796nVCFxq
        7
    0ZXYDDu796nVCFxq  
       2017-06-22 16:28:14 +08:00
    代理加账号密码。
    然后大多数客户端都支持带认证的代理的。
    Tink
        8
    Tink  
    OP
    PRO
       2017-06-22 16:32:28 +08:00
    @gstqc #7 主要是我这边环境不支持认证,支持的话我就自己搞了。。。
    yangff
        9
    yangff  
       2017-06-22 16:35:02 +08:00
    Tink
        10
    Tink  
    OP
    PRO
       2017-06-22 16:38:34 +08:00
    @yangff #9 passcode 是什么?
    yangff
        11
    yangff  
       2017-06-22 16:43:58 +08:00
    @Tink 你的密码,甚至你可以

    http://example.com/some_secret_string.pac

    安全性和你用 basic auth 几乎是一样的
    Tink
        12
    Tink  
    OP
    PRO
       2017-06-22 16:44:13 +08:00
    @yangff #9 htpasswd 加密后的?
    crab
        13
    crab  
       2017-06-22 16:49:06 +08:00
    你这个问题矛盾吧。
    pac 你不公开,别人也弄不到啊。
    公开了,拿到肯定能用你的代理了。
    或者可以在代理服务器上做域名得白名单,不存在得不给代理。
    Tink
        14
    Tink  
    OP
    PRO
       2017-06-22 16:50:07 +08:00
    @yangff #11 没理解啊亲,passcode 是啥密码? basic_auth 的吗?

    http://example.com/?passcode=abc:123

    这样的?


    然后 http://example.com/some_secret_string.pac 这个又是啥意思
    easyzhao
        15
    easyzhao  
       2017-06-22 17:02:26 +08:00
    可以这样 就是麻烦一点
    1.给每个用户 生成 唯一的一个 pac 地址 类似用户的 token
    2.然后用户获取 pac 文件时 可获取 用户的 ip 给该 ip 开白名单
    3.把代理服务器开白名单 才可以访问
    Tink
        16
    Tink  
    OP
    PRO
       2017-06-22 17:05:13 +08:00
    算了,我按照 9L 给的办法试试,直接在 nginx 里判断 url 参数
    yangff
        17
    yangff  
       2017-06-22 17:11:09 +08:00
    @Tink 就是直接把你的 pac 文件名搞成你的密码,然后不要在服务器上直接的链接…

    basic auth 本质上就是丢一个 base64 编码的密码,所以如果 basic auth 对你的安全性要求是 ok 的话,这样搞也是 ok 的
    Tink
        18
    Tink  
    OP
    PRO
       2017-06-22 18:21:37 +08:00 via iPhone
    @yangff 这个办法不好。。

    我觉得你说的 passcode 的办法还是可以的,我直接在 nginx 里判断问号后面的 passcode
    Genteure
        19
    Genteure  
       2017-06-22 20:18:53 +08:00
    我觉得文件后面加 passcode 参数、改一个猜不到的文件名都是不错的方法。不要让其他人拿到文件就可以了。

    混淆真的是没啥用。。随手一搜,比如 http://jsnice.org/ 用 #5 发的那个例子测试,五秒钟就看到原本的内容了。况且这也只是转了个码而已,算不上混淆。
    Actrace
        20
    Actrace  
       2017-06-22 20:53:10 +08:00
    楼主可以试试这个在线的 pac
    https://pac.ink
    kslr
        21
    kslr  
       2017-06-22 20:55:09 +08:00
    之前在路由器的代理被人扫到拿来发 spam 邮件。。 欠了不少流量
    Tink
        22
    Tink  
    OP
    PRO
       2017-06-22 20:59:41 +08:00 via iPhone
    @Actrace 这个是怎么解决这个问题的
    Actrace
        23
    Actrace  
       2017-06-22 21:04:39 +08:00
    @Tink 官方提供 URL 不存在被扫到的可能性,而且是 HTTPS 的。
    另外如果要更进一步的话,我建议你可以在 iptables 上做个规则,只让自己熟知的网段访问。这样基本可以过滤 99%了。
    Tink
        24
    Tink  
    OP
    PRO
       2017-06-22 21:29:03 +08:00 via iPhone
    @Actrace @Actrace 主要是现在这个网段很不确定,所以没法用 iptables
    xiaopc
        25
    xiaopc  
       2017-06-22 22:09:06 +08:00 via Android
    Windows 可以试试 NTLM Auth
    (渗透提权常用的/div>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3260 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 30ms UTC 04:37 PVG 12:37 LAX 20:37 JFK 23:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86