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

2017-06-22 15:19:36 +08:00
 Tink
之前想了个方法,用 nginx 给 pac 文件加上 basic_auth,但是发现在 windows 系统中没法使用 http://abc:pwd@example.com/proxy.pac 这样的形式填入自动代理设置。。

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

http://example.com/some_secret_string.pac

安全性和你用 basic auth 几乎是一样的
Tink
2017-06-22 16:44:13 +08:00
@yangff #9 htpasswd 加密后的?
crab
2017-06-22 16:49:06 +08:00
你这个问题矛盾吧。
pac 你不公开,别人也弄不到啊。
公开了,拿到肯定能用你的代理了。
或者可以在代理服务器上做域名得白名单,不存在得不给代理。
Tink
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
2017-06-22 17:02:26 +08:00
可以这样 就是麻烦一点
1.给每个用户 生成 唯一的一个 pac 地址 类似用户的 token
2.然后用户获取 pac 文件时 可获取 用户的 ip 给该 ip 开白名单
3.把代理服务器开白名单 才可以访问
Tink
2017-06-22 17:05:13 +08:00
算了,我按照 9L 给的办法试试,直接在 nginx 里判断 url 参数
yangff
2017-06-22 17:11:09 +08:00
@Tink 就是直接把你的 pac 文件名搞成你的密码,然后不要在服务器上直接的链接…

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

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

混淆真的是没啥用。。随手一搜,比如 http://jsnice.org/ 用 #5 发的那个例子测试,五秒钟就看到原本的内容了。况且这也只是转了个码而已,算不上混淆。
Actrace
2017-06-22 20:53:10 +08:00
楼主可以试试这个在线的 pac
https://pac.ink

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/370330

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX