我正在开发一个应用程序,它接收来自路由器web服务器的HTTP消息。
我面临的问题是HTTP中的basic authentication。
RFC 7617声明:
“服务器可以使用401 (Unauthorized)状态代码回答问题”
我从浏览器HTTP中看到的是,并不是每个路由器都是如此。例如,TPLINK TLWR840N不向我发送401,我可以通过简单地传输http请求和正确的凭据(在http消息中以base64{username:pass}的形式传递)获得资源,如下所示。
GET //main/ddos.htm?_=1572950350469 HTTP/1.1
Host: 192.168.0.1
Accept: */*
Connection: keep-alive
Referer: http://192.168.0.1
Cookie: Authorization=Basic YeRtaW46YWRtaW5AMTIz它给我请求的内容,如果密码是正确的,否则它将我重定向到登录页面(为什么这个路由器不遵循401协议?)
我有另一个TPLINK TL-WR841N路由器,它不以base64{username:pass}作为前一个路由器的形式(在http消息中),而是以base64(用户):MD5(密码)的形式接受凭据。我有两个关于这个路由器(和所有路由器)的问题。
TPLINK TL-WR841N路由器时,与以前的模型不同,web浏览器在URL中包含了一些SessionID,例如URL显示了www.192.168.0.1/SessionID/path/to/resource。我想知道这个SessionID是如何与浏览器通信的?发布于 2019-11-05 12:24:38
编写路由器维护应用程序的人,以及设计显卡驱动程序安装程序屏幕(看着你,AMD)的人,都不遵守任何准则、最佳实践或协议。
但他们也不需要。他们编写了一个碰巧使用HTTP的应用程序,但您不必使用所有的HTTP。他们写前端和后端,这样他们可以密切控制他们的服务器和客户端。
客户端最有可能是使用JavaScript执行一些请求的一些HTML页面。
如果他们决定web接口使用一个按字面上声明为LetMeIn: true的请求头对服务器进行身份验证,那么这也是可行的。
HTTP不要求服务器在该头丢失或带有false时返回401,因此它们不必返回。
https://stackoverflow.com/questions/58711026
复制相似问题