PHPROXY Encrypt 0.61

来源:互联网 发布:矩阵lu分解 编辑:程序博客网 时间:2024/04/29 13:14

一种 php0.5b2 的衍生版本,主要增加了加密模块


/*---------------------------修改记录(截止20110528下午)---------------------------*/

对HTML数据作如下的改动:

* 对COOKIE的一些值加密
* 不同的编码的数据统一为UTF-8,但一些不规范的网页在编码转换时可能出错,尤其是亚洲国家的文字编码,所以不怎么完善,
* UTF-8转成HTML实体,主要对多字节文字使用,防止关键字
* 在HTML实体的基础上增加了加密选项,加密算法简单,同一数据的密文随机改变,进一步防止关键字,但这将消耗更多的 S/C 资源,所以浏览明显变慢
* 对URL不仅仅是用BASE64编码,采用比较复杂的加密模式
* 更改了压缩方法
* 保持原网页编码不加密的选项,

其它改动:

* 首次提交的网址在客户端进行多次简单的编码,所以看上去是乱码
* 支持设定默认的代理网站
* 支持限制一些国家的网民使用此代理,以节省资源
* 支持白名单,在白名单的网站走指定的代理服务器
* 实现多语种,目前支持简体、繁体和英文
* 更改了风格,增加常用链接
* added by felix021 for block-divided downloading
* 增加了用户认证
* ACCEPT_LANGUAGE 和 USER_AGENT 被使用和修改
* 对常用的网址作了简短URL,但是这需要服务器支持rewrite模块(同时AllowOverride all),
  否则请在index.php文件的file_put_contents('.htaccess',$base);前加 // ,并删除 .htaccess 文件
* 支持在线检测版本
* 增加管理模块

在线代理的普遍缺点,需要专用的插件:

* 对AJAX支持的一塌糊涂
* 对FLASH也不支持

/*---------------------------发送中文数据返回乱码的处理方法---------------------------*/

一般的php.ini的 default_charset = "ISO-8859-1" ,而一些英文论坛默认编码并不是 utf-8 、 GBK,而是 ISO-8859-1 ,所以把发送的数据按照 ISO-8859-1 处理,或者经过两次UTF-8编码存储。

1. 把提交数据的页面在浏览器中调整为中文编码
2. 开启代理中倒数第三行 header("Content-type: text/html;charset=$charset"); 并指定为 GBK,但这将造成加载的风格文件丢失
3. 修改php.ini 中的 default_charset = "ISO-8859-1"

/*---------------------------遇到的问题--JS解码---------------------------*/

由于PHP和JS默认的编码格式的不同,导致PHP编码后的多字节数据在JS中不能正确解码,而单字节
数据则不存在这样的问题,为了使JS能正确解密PHP加密的数据,使用了HTML实体和BASE64编码,但
是这对多字节字符将非常耗费服务器和客户端的CPU和带宽,尤其让客户端的JS处理BASE64编码,那
真是为难,所以如何使用合适的编码是关键

一份中文数据的比较

        原数据  HTML实体 HTML加密

未压缩  83 KB   311 KB   415 KB                
有压缩  49 KB   59 KB    85 KB
比例    2       5        5           
CPU耗时 不明显  不明显   100% 42s

所以使用不加密的压缩方式浏览比较合适
 

/*---------------------------要完成的项---------------------------*/

- 支持 HTTP 摘要
- 支持一些视屏网站
- 如果遇到编码识别错误而显示乱码的网站,让用户自己选编码,这需要JS代码
- 对一些论坛作精简格式,适合手机访问
- 作一个客户端,让这个软件成为服务端


/*---------------------------原作者要完成的项(17:7)---------------------------*/

- Cookie 管理    ==>
- 支持JavaScript    ==> 仅用来加解密数据,不知道原作要JS支持什么
- 支持外部代理服务器    ==> 这个可以参照 surrogafier,条件许可,将使用 tor 等代理
- 不包含URL表框的 Frames 和 iframes 标签    ==>
- 缓存选项    ==>
- 更多编码URL的方法    ==> 完成
- 更多的浏览选项    ==> 添加了html加密选项
- 支持 HTTP 摘要    ==>
- 支持 HTTP 1.1    ==> 对一些网站会缓慢,放弃
- 支持更多的响应专用 headers    ==> 有改
- 更好的 "hosts" 控制    ==> 完成
- 引进 URL proxification    ==> ?
- 检查 gzip 压缩条件    ==> 完成
- Look into proxification XML 数据的    ==>
- 支持多语种    ==> 完成
- 支持 IDN    ==>
- 支持 FTP    ==>