PHP 反向代理访问任意网站源码来了_Any-Proxy

2021 年 2 月 14 日
 yitalin
折腾了一天,有点舍不得,还是发出来造福大家吧。
搭建好的地址可以共享一下
顺便取了个名字:Any-Proxy
源码: https://github.com/yitd/Any-Proxy

预览页面 https://turl.chat/ (不定时关闭)

输入 http://www.ip38.com/ 就浏览 ip38.com

也可以直接 http://turl.chat/http://加域名

如 : http://turl.chat/http://www.ip38.com/

你可以直接在当前链接后面输入 *q 退出当前页面返回首页
可直接在此域名后面加上链接地址访问,如 https://turl.chat/http://ip38.com
支持 POST 、cookie,不复杂的站点可以登录 测试 dnsdun 可以
12653 次点击
所在节点    PHP
65 条回复
blless
2021 年 2 月 16 日
中间人嘛,说得好听是代理。说得难听那就是中间人了。不是针对楼主啊,网上发的链接大家还是留个心眼不要点,尤其还登陆点啥来着
bao3
2021 年 2 月 16 日
突然,就觉得自己是互联网老毒物了……2009 年,还自己搭建过 php proxy,上各种网站……一晃好久了。
baoshuo
2021 年 2 月 16 日
楼主的代码我觉得还只能算是娱乐性质的,真要在生产环境用分分钟炸掉

虽然我的 PHP 水平没有那么好,但是也能看出来一些错误,比如楼上(#39 )所说的扫内网,还有代码里单双引号的不正确使用,等等

然后我看了看楼主的仓库,第一眼让我看见的就是 `Add files via upload` 。这要么说明楼主比较懒,要么说明楼主不会 Git



然后各个 Commit 的标题让我成功相信了楼主不会用 Git,即使会用也应该处于刚入门的阶段

如果楼主是刚入门的话,我觉得应该去学一些有变量类型的语言(比如 C++),这样对以后的习惯养成有很大帮助
systemcall
2021 年 2 月 16 日
@ladypxy #26
Google 中国的那些服务器停了就没法用了。以前 Google 中国的那些服务器还是开的的时候,可以白嫖 Google 的国际专线,北京-美国的专线
markgor
2021 年 2 月 16 日
要不考虑下替换插入下<base>标签?
yitalin
2021 年 2 月 16 日
@baoshuo 不会啊,我不会写代码,所有问题都是百度的,代码都是复制粘贴拼接的
yitalin
2021 年 2 月 16 日
@markgor 为什么需要这个呢?不是没必要了吗?
nalzok
2021 年 2 月 16 日
@KasuganoSoras 其实我觉得问题不是楼主不虚心,你看八楼说的 “这东西 10 年前就有了吧 还不如 nginx”。从这句话里我没看出有什么有建设性的意见(哪个十年前的仓库值得楼主学习呢? NGINX 相比楼主的项目又有什么优越性呢?),完全就是在 bully 罢了。楼主写的东西再粗糙,他也是想和大家分享自己的作品,结果这么多人都在说 “你写的就是个没用的垃圾”,换作谁会高兴啊。我觉得你的评论就很好,人家的代码有什么问题直接提出就行了,讲那些没用的干嘛 = =
markgor
2021 年 2 月 16 日
@yitalin
请忽略我,找到问题了,源站资源存在防盗链的就 GG 了,一开始以为是相对路径的原因
Tining
2021 年 2 月 16 日
本来想部署一下。。感觉要不等大佬更新
yitalin
2021 年 2 月 16 日
@Tining 更新得差不多了,搭吧,有建议可以回复
KasuganoSoras
2021 年 2 月 17 日
看到你今天更新了,顺带回一下
https://github.com/yitd/Any-Proxy/blob/main/index.php#L53
虽然你做了对内网的判断,判断 host 是否是内网地址,但是,你没有对 host 进行解析操作,也就是说,如果我随便找个域名解析到 192.168.1.1 这样的地址去,还是可以继续扫内网。

另外
https://github.com/yitd/Any-Proxy/blob/main/index.php#L3
不应该去判断是否有 X-Forward-For Header,因为可以随意伪造,只要我每次伪造随机的 Header,就可以无限刷,无视掉你这一部分的判断,并且因为你这一部分还会把请求的 IP 写入 Redis,所以我甚至还可以通过给 Header 塞超长的数据 + 大量请求塞爆 Redis,让主机内存爆满。

继续改进吧
KasuganoSoras
2021 年 2 月 17 日
当你试着去解决了域名解析,Header 伪造这些问题后,你就会发现,其实你写的东西和你所说市面上那些慢的要死、浏览网页一卡一卡的代理软件的速度差不到哪去。之所以那些软件速度不快,是因为人家的软件在设计的时候就考虑到了加密、安全以及各种各样的问题,而不是单纯的就做个转发。因为没人愿意把一套不安全的软件部署在自己的生产服务器上。
yitalin
2021 年 2 月 17 日
@KasuganoSoras 那是我测试站点用的判断代码,忘了删除。域名解析速度的影响可以忽略不计吧,另外 X-Forward-For Header 是针对 cdn 的,加了 cdn 只有这个才能拿到客户端 IP
yitalin
2021 年 2 月 17 日
@KasuganoSoras 感谢指点。
ywisax
2021 年 2 月 17 日
差不多十年前,我有个朋友就是做这种项目的,wap 浏览器,wml to html 部分还是我写的。。。
挺好玩的,深入搞这个项目对于 HTTP 的细节了解程度应该会提升很大。
aoerboquartz
2021 年 2 月 17 日
楼主做的挺好的,楼主自己都说了,他是自学,不是科班出身,语言符号不规范等等都是正常的,大家就不要嘲讽。楼主 继续完善好代码。
whoami9894
2021 年 2 月 17 日
@yitalin #38
态度还挺冲,逗笑我了
KasuganoSoras
2021 年 2 月 17 日
今天下午没事干,重新整理了一遍你的代码,把发现的几个问题都修复了,另外规范了一下命名,已经给你提 PR 了,有空去看看吧
gtchan13579
2021 年 2 月 18 日
无法访问域名+端口号的,感觉用处不大

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

https://study.congcong.us/t/753315

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

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

© 2021 V2EX