Day 9937 中间人攻击式饭否消息过滤代理
这个东西的最初设计目标是:在不对某些人取消关注(加黑名单也会取消关注)的情况下,通过中间人攻击(不是唬人,其实本质就是篡改返回结果)为不支持消息过滤的饭否客户端(实际上,没有任何一款饭否客户端和官方界面有这个功能,据本人所知的唯一途径是Chrome插件Fanatic,但也只能对饭否网页版起作用)提供相应功能。
由于没有一款客户端支持自定义API地址,所以采取的方式是:在本地用hosts将API所在主机(api.fanfou.com)重定向,然后在目标服务器接受解析,等于欺骗一下客户端,让它以为连接的是官方的API服务器。
此外,既然是中间人攻击,那么其实想对返回结果做什么都可以,本来除了过滤特定人之外还想加入更多功能,可是写完就懒了。
代码写得很面条很烂,请多包涵。
使用方法(以Apache 2.4.4 + PHP 5.3为例):
1、将文件内容另存为UTF-8无BOM格式,文件名为index.php(或任何目标服务器支持的默认文档名)
2、确认PHP开启cURL扩展,Apache开启了Rewrite扩展,修改httpd-vhosts.conf(或Apache虚拟主机配置文件所在处):
<VirtualHost *:80> ServerName api.fanfou.com DocumentRoot "文件所在路径" </VirtualHost> <Directory "文件所在路径"> Order Allow,Deny Allow from All RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f #-f的含意是将请求的路径当作文件来看待,由于-f会检测文件是否真实存在,所以!之 RewriteRule ^(.*)$ index.php?reqf=$1 [QSA] #QSA == Query strings appended,即将原始Query String内容原样转发 </Directory>
3、配置主机,将api.fanfou.com绑定到刚刚配置的Apache服务器上。
4、在要使用该代理的客户端上,配置hosts文件,将api.fanfou.com指向文件所在的主机。 Continue reading “Day 9937 中间人攻击式饭否消息过滤代理”