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

2021-02-14 20:44:36 +08:00
 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 可以
12214 次点击
所在节点    PHP
65 条回复
blless
2021-02-16 08:25:11 +08:00
中间人嘛,说得好听是代理。说得难听那就是中间人了。不是针对楼主啊,网上发的链接大家还是留个心眼不要点,尤其还登陆点啥来着
bao3
2021-02-16 08:33:02 +08:00
突然,就觉得自己是互联网老毒物了……2009 年,还自己搭建过 php proxy,上各种网站……一晃好久了。
baoshuo
2021-02-16 08:33:08 +08:00
楼主的代码我觉得还只能算是娱乐性质的,真要在生产环境用分分钟炸掉

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

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



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

如果楼主是刚入门的话,我觉得应该去学一些有变量类型的语言(比如 C++),这样对以后的习惯养成有很大帮助
systemcall
2021-02-16 09:04:18 +08:00
@ladypxy #26
Google 中国的那些服务器停了就没法用了。以前 Google 中国的那些服务器还是开的的时候,可以白嫖 Google 的国际专线,北京-美国的专线
markgor
2021-02-16 09:39:49 +08:00
要不考虑下替换插入下<base>标签?
yitalin
2021-02-16 10:31:25 +08:00
@baoshuo 不会啊,我不会写代码,所有问题都是百度的,代码都是复制粘贴拼接的
yitalin
2021-02-16 10:32:05 +08:00
@markgor 为什么需要这个呢?不是没必要了吗?
nalzok
2021-02-16 10:48:53 +08:00
@KasuganoSoras 其实我觉得问题不是楼主不虚心,你看八楼说的 “这东西 10 年前就有了吧 还不如 nginx”。从这句话里我没看出有什么有建设性的意见(哪个十年前的仓库值得楼主学习呢? NGINX 相比楼主的项目又有什么优越性呢?),完全就是在 bully 罢了。楼主写的东西再粗糙,他也是想和大家分享自己的作品,结果这么多人都在说 “你写的就是个没用的垃圾”,换作谁会高兴啊。我觉得你的评论就很好,人家的代码有什么问题直接提出就行了,讲那些没用的干嘛 = =
markgor
2021-02-16 15:28:24 +08:00
@yitalin
请忽略我,找到问题了,源站资源存在防盗链的就 GG 了,一开始以为是相对路径的原因
Tining
2021-02-16 22:22:52 +08:00
本来想部署一下。。感觉要不等大佬更新
yitalin
2021-02-16 22:33:00 +08:00
@Tining 更新得差不多了,搭吧,有建议可以回复
KasuganoSoras
2021-02-17 11:08:53 +08:00
看到你今天更新了,顺带回一下
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-02-17 11:16:38 +08:00
当你试着去解决了域名解析,Header 伪造这些问题后,你就会发现,其实你写的东西和你所说市面上那些慢的要死、浏览网页一卡一卡的代理软件的速度差不到哪去。之所以那些软件速度不快,是因为人家的软件在设计的时候就考虑到了加密、安全以及各种各样的问题,而不是单纯的就做个转发。因为没人愿意把一套不安全的软件部署在自己的生产服务器上。
yitalin
2021-02-17 14:39:04 +08:00
@KasuganoSoras 那是我测试站点用的判断代码,忘了删除。域名解析速度的影响可以忽略不计吧,另外 X-Forward-For Header 是针对 cdn 的,加了 cdn 只有这个才能拿到客户端 IP
yitalin
2021-02-17 14:41:09 +08:00
@KasuganoSoras 感谢指点。
ywisax
2021-02-17 17:09:09 +08:00
差不多十年前,我有个朋友就是做这种项目的,wap 浏览器,wml to html 部分还是我写的。。。
挺好玩的,深入搞这个项目对于 HTTP 的细节了解程度应该会提升很大。
aoerboquartz
2021-02-17 17:15:37 +08:00
楼主做的挺好的,楼主自己都说了,他是自学,不是科班出身,语言符号不规范等等都是正常的,大家就不要嘲讽。楼主 继续完善好代码。
whoami9894
2021-02-17 18:19:54 +08:00
@yitalin #38
态度还挺冲,逗笑我了
KasuganoSoras
2021-02-17 18:34:00 +08:00
今天下午没事干,重新整理了一遍你的代码,把发现的几个问题都修复了,另外规范了一下命名,已经给你提 PR 了,有空去看看吧
gtchan13579
2021-02-18 09:06:28 +08:00
无法访问域名+端口号的,感觉用处不大

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

https://ex.noerr.eu.org/t/753315

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

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

© 2021 V2EX