gpt4 book ai didi

c# - MVC/ASP.NET 中的自定义 session 处理

转载 作者:行者123 更新时间:2023-11-30 12:48:06 24 4
gpt4 key购买 nike

我使用的是 ASP.NET,我使用我自己编写的自定义身份验证提供程序,散列和加盐已经到位,因此它应该相对安全。

我还实现了一个像这样工作的自定义身份验证 session 机制。

  1. 用户登录到网络应用程序,根据 mssql 数据库中的数据验证密码。
  2. “ session ”表中插入了一个新行,其中包含对已登录用户的引用、身份验证 token 和到期日期。
  3. 身份验证 token 与 cookie 一起返回,并存储在客户端的计算机上。
  4. 授权 token 用于识别用户。

它工作得很好,但我不确定这是正确的方法,因为我可以看到潜在的安全风险,例如,如果有人侵入数据库并更改用户 ID,或获得授权 token ,还是我错了?

附言不幸的是,我不能使用内置的身份验证/ session 处理,因为我们的客户要求这样做,而且我们必须支持其他数据库引擎,例如 mysql、oracle/等,所以请不要建议 :)

最佳答案

我认为这几乎是安全的。

为了减轻您对看到数据库后一切都受到损害的担忧,有一些方法可以解决这个问题。如果您不担心扩展到多个服务器,您可以在应用程序启动时生成一个 key 。然后使用此 key 对每个 session 进行“签名”。因此,您可以对 auth token+server key+expiration 之类的内容进行哈希处理,然后您可以在 session 的每个请求上验证它。

至于人们是否能够窃取授权 token ,您在这里只有这么多选择。作为引用,这称为“重放攻击”。如果不让您的网站烦人,很难阻止它们(哦,您想从这一页打开 3 个选项卡,您将不得不登录,因为它是重播)参见 wikipedia获取更多信息。这在很大程度上取决于您需要的“安全程度”。

关于c# - MVC/ASP.NET 中的自定义 session 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15092348/

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