gpt4 book ai didi

asp.net - 表单例份验证保护什么,而不是使用 session 变量

转载 作者:行者123 更新时间:2023-12-04 15:24:00 25 4
gpt4 key购买 nike

我正在开发一个应用程序,它使用 Session 变量来跟踪用户,检查母版页是否存在,否则会导致他们退出登录。我想将其更改为表单例份验证,因为我读到它更安全并且数据已加密。

有人能告诉我哪些数据实际上是加密的吗?我尝试在我的网站上设置表单例份验证,它工作正常,用户被正确跟踪,并且无法在不登录的情况下访问页面。但是,当我使用 Fiddler 查看请求正文时,我看到了所有表单字段和那里内容。黑客不能使用它来更改数据并重新提交请求,就像使用 Session 变量生成的 cookie 一样吗?这个应用程序没有使用 SSL,所以我知道 SSL 会加密正文,但我认为这也是 Forms Authentication 会做的。否则它加密什么,只是 cookie 中的 session ID?

这是我使用的代码:

    <authentication mode="Forms">
<forms loginUrl="default.aspx" name=".ASPXFORMSAUTH_Test" defaultUrl="home.aspx" protection="All"/>
</authentication>
<authorization>
<deny users="?"/>
</authorization>

在登录页面中,我尝试手动创建 cookie:
                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
txtEmail.Text,
DateTime.Now,
DateTime.Now.AddMinutes(30),
false,
txtEmail.Text,
FormsAuthentication.FormsCookiePath);

// Encrypt the ticket.
string encTicket = FormsAuthentication.Encrypt(ticket);

// Create the cookie.
Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

// Redirect back to original URL.
Response.Redirect(FormsAuthentication.GetRedirectUrl(txtEmail.Text, false));

我也试过:
FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false);

早些时候,得到了相同的结果,Fiddler 中的请求正文显示了所有提交的字段及其内容。

最佳答案

将您的方法切换到表单例份验证不会使其更安全。这意味着您将使用更标准化的身份验证机制,以便更轻松地审核您的软件是否存在与身份验证相关的问题。

此外,即使当用户的 session 过期(或应用程序池回收)时,FormsAuthentication 通常也能够工作,因为它将用户数据存储在具有自己的过期策略的加密 cookie 中。

关于asp.net - 表单例份验证保护什么,而不是使用 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16545978/

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