gpt4 book ai didi

asp.net - 为什么我的 ASP.NET 页面返回 `200 OK` 而没有发送任何身份验证 header ?

转载 作者:行者123 更新时间:2023-12-02 07:55:35 27 4
gpt4 key购买 nike

备注:

This question has broadened in scope from previous revisions. I have tried to simplify the issue so it can be easily reproduced by anyone.

使用 Fiddler ,在从 HTTP 请求中删除我的 Authorization header 后,我可以将任意请求重播到我的默认页面,并且我能够获得包含有效数据的 200 OK 响应。

赏金更新

以下是重现此行为的步骤:

1. 在 ASP.NET 中创建一个“新网站”,随意命名为“InsecureWebsite”

2. 编辑 web.config 以拒绝所有未经身份验证的用户:

<authentication mode="Windows" />
<authorization>
<deny users="?"/>
<allow users="*"/>
</authorization>

3.将网站发布到DEV服务器上的任意目录,并为应用程序创建一个虚拟目录

4.确保应用程序具有脚本访问权限 (.ASP) 并启用集成 Windows 身份验证

5.打开Fiddler捕获流量

6. 在您喜欢的浏览器中加载页面并查看 Fiddler 中的“检查器”选项卡。 ,您会看到类似于以下内容的请求:

GET /InsecureWebsite/ HTTP/1.1Host: dev.subdomain.example.comUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: en-us,en;q=0.5Accept-Encoding: gzip,deflateAccept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7Keep-Alive: 300Connection: keep-aliveAuthorization: NTLM{Base64-encoded authentication data}

Default.aspx 的初始请求将返回 401 Unauthorized,将进行协商,然后最终返回 200 OK

然后在 Fiddler 中,我可以直接从对 Default.aspx 的重放请求中删除 Authorization header ,并且仍然得到 200 OK。这怎么可能?

解决方案

事实证明,Fiddler 在发出请求时使用相同的底层连接,因此一旦连接通过身份验证,同一连接上的任何请求也将被验证为与初始请求相同的用户。您可以在此处关闭 Fiddler 中的此功能:

Screenshot of Fiddler options http://john.cognitivedelay.com/images/fiddler-options.gif

一旦取消选中,Fiddler 中的任何重放请求都将返回 401 Unauthorized,正如我所期望的那样。

感谢所有花时间回复的人!

最佳答案

编辑:每个更新的问题:

您是在 Fiddler 本身中进行回放,还是直接连接到网络服务器?可能是 Fiddler 正在重用现有的 HTTP 连接(它可以作为代理)...我认为 IWA 可能会将整个连接标记为已验证,而不仅仅是当前请求,这意味着任何 future 的请求连接重新使用第一次协商的授权和身份验证...

原回答:尝试

[WebMethod(EnableSession=true)]  
[PrincipalPermission(SecurityAction.Demand, Authenticated=true)]

看看是否有帮助?

(可能 [PrincipalPermission(SecurityAction.Demand, Role="myDevRole")] 如果这更适合您...)

关于asp.net - 为什么我的 ASP.NET 页面返回 `200 OK` 而没有发送任何身份验证 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1008839/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com