forked from aploium/zmirror
-
Notifications
You must be signed in to change notification settings - Fork 0
The next-gen reverse proxy for full site mirroring
License
douding002/zmirror
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
## 优点<br> 按需代理,需要访问时才实时转发<br> 访问终端不需任何额外设置<br> 访问终端类型和数量基本没有限制<br> <br> ## 缺点<br> 容易奔溃<br> <br> ## 常见错误<br> 500 Internal Server Error<br> Internal Server Error<br> The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.<br> <br> ## 调试程序<br> 采用访问单个文件的方法来分析程序的运行<br> <br> # app.route <br> - @app.route('/zmirror_stat')<br> def zmirror_status(): 返回服务器的一些状态信息<br> <br> - @app.route('/ip_ban_verify_page', methods=['GET', 'POST'])<br> def ip_ban_verify_page(): 返回身份验证页面<br> <br> - @app.route('/crossdomain.xml')<br> def crossdomain_xml(): 返回一个xml文件,不知道用途<br> <br> - @app.route('/about_zmirror')<br> def about_zmirror(): 返回about信息<br> <br> - @app.route('/', methods=['GET', 'POST', 'OPTIONS', 'PUT', 'DELETE', 'HEAD', 'PATCH'])<br> - @app.route('/<path:input_path>', methods=['GET', 'POST', 'OPTIONS', 'PUT', 'DELETE', 'HEAD', 'PATCH'])<br> def zmirror_enter(input_path='/'): 入口函数的壳 <br> def main_function(input_path='/'): 程序的实际入口函数 <br> # main_function<br> <br> assemble_parse() 1 **将用户请求的URL解析为对应的目标服务器URL** <br> filter_client_request() 2 对用户请求进行检查和过滤,不符合条件的请求(比如爬虫)将终止执行 <br> prior_request_redirect() 3 对用户请求进行第一级重定向(隐式重写前的重定向),如果返回的是None, 照常继续 <br> rewrite_client_request() 4 进行请求的隐式重写/重定向 <br> ssrf_check_layer_1() 5 第一层SSRF检查, 防止请求不允许的网站 <br> extract_client_header() 6 提取出经过必要重写后的浏览器请求头 <br> posterior_request_redirect() 7 对用户请求进行第二级重定向(隐式重写后的重定向),如果返回的是None, 照常继续 <br> prepare_client_request_data() 8 **解析并重写浏览器请求的data内容** <br> request_remote_site() 9 **请求真正的远程服务器** <br> send_request() 9.1 发送请求<br> guess_correct_domain() 9.2 返回404/500时进行 domain_guess 尝试 <br> parse_remote_response() 10 **解析远程服务器的响应** <br> generate_our_response() 11 **生成我们的响应** <br> copy_response() 11.1 复制响应<br> dump_zmirror_snapshot() 11.2 dump当前状态到文件 <br> put_response_to_local_cache() 12 存储服务器的整个响应<br>
About
The next-gen reverse proxy for full site mirroring
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Python 96.9%
- HTML 3.0%
- Shell 0.1%