Coder Social home page Coder Social logo

ryanfu / fastapi_rpc Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mic1on/fastrpc

0.0 0.0 0.0 14 KB

这是一个基于 FastAPI 的 浏览器 RPC 服务端

License: Apache License 2.0

Shell 13.90% JavaScript 45.32% Python 37.91% Dockerfile 2.87%

fastapi_rpc's Introduction

FastAPI RPC

这是一个基于 FastAPI 的 浏览器 RPC 服务端。

此浏览器可以是任何端(pc/手机/平板)的任意浏览器

它提供了一个WS服务和一个HTTP服务。WS服务负责浏览器群和服务端的通信;HTTP服务负责提供一个HTTP接口,用户通过调用接口实现调用远程浏览器群的方法。

此项目主要思路来自于 sekiro。项目的初衷是学习并分享学习成果,请勿用于非法用途。

作用

当你苦于网站层层加密无法解密时,当你遇到诸如动态cookie加密时,你可以考虑使用此项目,这是解决方案之一。

使用

  • 方式1:docker

docker run --name rpc -p 8000:8000 -d miclon/fastapi_rpc

支持环境变量:
WORKERS_PER_CORE: 每个CPU核工作线程数量,默认为1
MAX_WORKERS:工作进程,默认是按CPU核心数量*WORKERS_PER_CORE
  • 方式2:clone本地运行
  1. 首先你需要确保成功运行python主程序main.py
  2. 将提供给你的client.js注入到浏览器中。注入方式作者用的是油猴。
  3. 将浏览器打开任意网站,比如百度。(这时候油猴脚本是将client.js注入到页面里的)
  4. 此时,你可以在电脑终端中执行:

curl http://localhost:8000/do/cookies

你将在终端看到你访问百度留下的cookies

以上就是一次项目的初体验,如果以上步骤非常顺利,那么你可以继续向下看。

新增功能

刚刚看到了,我们在API接口调用了/do/cookies,那是因为我们在client.js中注册了此方法名称。

client.registerAction("cookies",function(request, resolve,reject ){
        resolve(document.cookie);
})

所以,顺理成章地,我们可以自定义其他任意操作,比如:

client.registerAction("html",function(request, resolve,reject ){
        resolve(document.documentElement.outerHTML);
})

随后,我们调用:

curl http://localhost:8000/do/html -o baidu.txt

ps: -o 输出到文件baidu.txt

举例应用场景

某网站登录

其网站登录的时候密码是加密的。

尝试找到调用处。

这里就是它的加密方法。

encryptedString(key_to_encode, that.password.val())

以往的方式,我们需要进入这个方法,抠出它的实现过程。要么还原要么node调用执行。

现在,不需要这些,直接复制这个加密。

client.registerAction("mm",function(request, resolve,reject ){
        resolve(encryptedString(key_to_encode, "qq1234"));
})

调用:

curl http://localhost:8000/do/mm

得到加密结果:

更多场景

……

fastapi_rpc's People

Contributors

mic1on avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.