gpt4 book ai didi

c# - 防止 wtrealm 中的跨站点脚本

转载 作者:太空宇宙 更新时间:2023-11-03 11:18:04 24 4
gpt4 key购买 nike

我们正在创建一个如下所示的消息,它是一个 SignInRequestMessage

var message = Microsoft.IdentityModel.Protocols.WSFederation.WSFederationMessage.CreateFromUri(Request.Url);

它具有以下属性:

Microsoft.IdentityModel.Protocols.WSFederation.SignInRequestMessage

Action :“wsignin1.0”

消息.参数

Count = 2
[0]: {[wa, wsignin1.0]}
[1]: {[wtrealm, javascript:alert(/test/)]}

注意消息中的第二个参数是 javascript,当 adfs 重定向到它时,我们实际上看到了警报。

当用户登录时会发生这种情况,并且在同一 session 中我们尝试输入如下 URL

https://localhost/StarterSTSLib/Login.aspx?wa=wsignin1.0&wtrealm=javascript:alert(/test/)

有没有人对我们如何防止 wtrealm 遭受此跨站点脚本漏洞有任何建议?

最佳答案

像 ADFS 这样的生产就绪 STS 不依赖 wtrealm 回复 token 。管理 ADFS 的人将设置应用程序/依赖方并指定将 token 发布到的 ednpoint。

WIF“add sts reference”生成的STS会以wtrealm为endpoint发布token。这就是为什么它是一个开发 STS,而不是生产就绪。

简而言之,取决于 STS 实现是否使用 wtrealm 作为端点。您应该有一个将领域与 url(如 adfs)相关联的存储库。

关于c# - 防止 wtrealm 中的跨站点脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11989244/

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