我需要为网站创建一个帐户生成器,但我的请求负载有一些问题

问题描述 投票:0回答:2

注册窗口需要姓名、电子邮件、密码。有一个 registration form

形式的示例

请求负载格式如下
request payload

这种格式是什么?我如何使用这种格式发出请求而不会出现错误?如果我尝试使用相同的格式发出请求,但仅更改电子邮件、密码、姓名,我会在响应标头中收到一条 grpc 消息,内容为:“grpc:收到的消息大于最大值(1551183920 与 4194304)”并生成帐户不起作用。

这是我的要求:

import requests

url = "https://grips-web.aboutyou.com/checkout.CheckoutV1/registerWithEmail"

payload = "H\\u0008\\u009f\\u0005\\u0010\\u0004\\u001a\\[email protected]*\\u0007Billy2\\u0007Jhonson8\\u0002J\\u000f\\n\\rhelloworld122!\\u0021P\\u0001"
headers = {
    "content-type": "application/grpc-web+proto",
    "accept-language": "it-IT,it;q=0.9"
}

response = requests.post(url, data=payload, headers=headers)

forms python-requests grpc payload
2个回答
0
投票

给出

application/grpc-web+proto
Content-Type
,我假设这是一个 JavaScript 客户端,使用 gRPC-Web 将请求(通过代理)提交到 gRPC 服务。

gRPC 使用二进制编码的在线消息来提高效率(以及 HTTP/2),因此直接手工制作消息更具挑战性。

通常,您会使用 protobuf(架构)文件来生成例如为您提供一个 Python 客户端,这将公开一个可用于(取消)编组消息的类。

直接破解消息是可能的,但具有挑战性。

  • 看看 Marc Gravell 的 Protobuf 解码器,因为这可能会有所帮助。
  • 您也许能够解码浏览器客户端使用的 JavaScript 导入来对 protobuf 服务|方法进行逆向工程。 gRPC-Web 使用 gRPC,但不使用 HTTP/2。因此,相同的 RPC 和消息将直接与代理和服务器一起工作。
  • 然后您可以直接编译Python库。您还需要识别源服务器,因为您需要通过 HTTP/2 直接向其发送 gRPC,而不是针对代理的 gRPC-Web 调用。
  • gRPC 服务所有者可能通过 IP、某些身份验证机制和|或其他方式限制 gRPC-Web 客户端对后端的访问。

注意 一般来说,如果原型未发布,服务所有者不希望以可用的方式使用该服务。


0
投票

import requests

url = "https://grips-web.aboutyou.com/checkout.CheckoutV1/registerWithEmail"

payload = "H\\u0008\\u009f\\u0005\\u0010\\u0004\\u001a\\[email protected]*\\u0007Billy2\\u0007Jhonson8\\u0002J\\u000f\\n\\rhelloworld122!\\u0021P\\u0001"
headers = {
    "content-type": "application/grpc-web+proto",
    "accept-language": "it-IT,it;q=0.9"
}

response = requests.post(url, data=payload, headers=headers)

aass1122

© www.soinside.com 2019 - 2024. All rights reserved.