gpt4 book ai didi

wcf - WCF session 是否安全?

转载 作者:行者123 更新时间:2023-12-04 06:26:10 24 4
gpt4 key购买 nike

我正在开发具有某种身份验证的 WCF 服务。

所有用户都是平等的,所以我计划要求 session 并且只有一个方法可以启动 session 而不终止它。简化:

[OperationContract(IsInitiating = true, IsTerminating = false)]
void Open(String user, String password);

因此,如果密码错误(同样,这是一种简化),我会引发异常,以便 session 结束。这样,我不需要在每个方法调用中检查凭据。

这是一个好方法吗?如果不是,为什么?

更新:我不得不匆忙写下这个,所以我会尝试详细说明一下,让我的问题更清楚。

身份验证方法是必需的,我不是在问它。我想了解 session 管理。

当我使用 [OperationContract(IsInitiating=true, IsTerminating=false)] 时,会启动一个 session 。我不需要存储 ID 或任何东西; WCF 管理一切。当引发异常或调用 IsTerminating=true 的方法时, session 结束,随后对服务方法的调用失败,直到启动新 session 。

我想知道的是,攻击者是否可以相当容易地绕过 WCF session 管理的东西,在不调用 Open 的情况下自行创建一个,这是我的服务的唯一方法,IsInitiating=true 和 IsTerminating=false,所以,唯一的方法合法地开始一个 session 。

最佳答案

WCF session 可以像您喜欢的那样安全,具体取决于您选择的绑定(bind)。

http://msdn.microsoft.com/en-us/library/ms731172.aspx

但是,我建议上述方法不起作用,因为您的方法不会向调用客户端返回任何值,以指示它应该在后续调用(即 session ID)中传递什么来验证自己。

更好的方法可能是在绑定(bind)中进行所有安全检查(有关大量选项,请参见上面的链接),让服务本身只公开方法,而不用担心验证客户端。

关于wcf - WCF session 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6021056/

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