【发布时间】:2019-01-09 04:22:33
【问题描述】:
考虑我们运行以下请求:
url="https://secretsub.example.com/secretpath/post.php"
payload = {'secretmessage1' : 'foo','secretmessage2' : 'bar'}
r = requests.post(url,data=payload,verify=True)
语言(python)是任意的,但它可以是任何其他语言(NodeJs、Java、Php...)的请求
请注意,该 url 使用的是 https,这意味着连接是通过 SSL 保护的。假设我将这个程序编译成二进制(.exe),计算机是否可以通过软件以纯文本形式读取有效载荷?
我知道数据包嗅探软件(如 WireShark)只会以纯文本形式显示域名 (example.com),但不会显示秘密路径或将被加密的有效负载。
如果我在网络 浏览器 中运行此代码(假设它是用 Javascript 编写的),我将能够以普通方式访问有效负载和 secretpath浏览器控制台中的文本。我假设浏览器仅在请求登录其控制台后才对其进行加密。但是如果这段代码在浏览器之外运行,有没有办法让计算机主机以纯文本形式截取这些数据? (某种数据包嗅探工具)
【问题讨论】:
-
几乎总是可以在在建立连接的设备上看到 SSL 连接的明文。有时有一些日志记录选项可以使其变得简单,有时您将不得不根据平台做一些更复杂或更痛苦的事情。
-
这是通过默默无闻的安全。工具能够从您那里提取字符串
.exe,并将恢复 URL 和有效负载,并且能够重做相同的查询。主机上也可能有一个强制性的 HTTPS 代理(就像 AV 软件一样),它将能够读取所有纯文本。这取决于您的软件是否附带特定的 CA 列表(您正在做verify=True这是很棒!)或使用来自底层操作系统的 CA。
标签: security ssl encryption https request