【发布时间】:2021-12-23 19:21:13
【问题描述】:
服务器侦听数据包,我们将 http GET 请求数据包发送到此侦听器。如果我们使用带有用户名/密码的 auth 标头服务器不接受连接并且失败。有没有办法解析此 auth 标头信息(用户名/密码) 在听众身上?因为我们要根据用户/通行证比较来进行认证
注意:在 GET 数据包 http 侦听器中没有 auth 标头接受连接,它工作正常
HTTP 数据包监听器
import socket
serverSocket = socket(AF_INET, SOCK_STREAM)
serverPort = 8080
serverSocket.bind(("127.0.0.1", serverPort))
serverSocket.listen(1)
while True:
print('Ready to serve...')
try :
connectionSocket, addr = serverSocket.accept()
except :
print (f"Socket error occured for 127.0.0.1 {serverPort} ")
HTTP 客户端
import requests
from requests.auth import HTTPBasicAuth
r = requests.get('http://127.0.0.1:8080',auth = HTTPBasicAuth('user', 'pass'))
感谢您的帮助!
【问题讨论】:
-
@floatingpurr 但在这个例子中它只是发送数据包......不确认用户名/密码。就我而言,我的侦听器程序已经收到来自客户端的数据包我的问题是如何解析身份验证标头并确认数据包侦听器上的身份验证
-
你必须实现一个合适的 HTTP 服务器,即理解 HTTP 协议的服务器,而不是你所知道的 TCP 监听器。然后,您需要从 Authorization 标头中提取凭据并检查您拥有的任何身份验证后端。现在的问题离这个太远了,因此太宽泛了。这就像有一个方向盘,然后问如何围绕它造一辆汽车。
-
我要发布一个示例/PoC。
-
@floatingpurr 感谢您的回复,是的,我知道 :) 我需要构建正确的 http 服务器 flasjk/django 来处理 http 数据包和标头。我只是想知道是否有办法解析这些信息通过使用请求模块或套接字模块。这就是我问这个问题的原因。现在我很清楚我将使用另一个应用程序数据来共享用户名/传递信息,以便可以用正则表达式解析它们再次感谢您的解释
标签: python http sockets authentication confirmation