在本文中,您将会了解到关于出于安全原因,服务器是否应该验证带有HttpOnly的Cookie?的新资讯,同时我们还将为您解释服务器端验证是为了保证给用户较快的响应速度的相关在本文中,我们将带你探索出于
在本文中,您将会了解到关于出于安全原因,服务器是否应该验证带有 HttpOnly 的 Cookie?的新资讯,同时我们还将为您解释服务器端验证是为了保证给用户较快的响应速度的相关在本文中,我们将带你探索出于安全原因,服务器是否应该验证带有 HttpOnly 的 Cookie?的奥秘,分析服务器端验证是为了保证给用户较快的响应速度的特点,并给出一些关于#翻译# 2012 版获得 httponly cookie 权限教程、Angular 8:将JWT令牌安全地存储在httpOnly cookie中、asp.net core 3.1 cookie httpOnly 登录验证、asp.net-mvc-4 – SessionAuthenticationModule Cookie处理程序没有创建HttpOnly安全cookie的实用技巧。
本文目录一览:- 出于安全原因,服务器是否应该验证带有 HttpOnly 的 Cookie?(服务器端验证是为了保证给用户较快的响应速度)
- #翻译# 2012 版获得 httponly cookie 权限教程
- Angular 8:将JWT令牌安全地存储在httpOnly cookie中
- asp.net core 3.1 cookie httpOnly 登录验证
- asp.net-mvc-4 – SessionAuthenticationModule Cookie处理程序没有创建HttpOnly安全cookie
出于安全原因,服务器是否应该验证带有 HttpOnly 的 Cookie?(服务器端验证是为了保证给用户较快的响应速度)
如何解决出于安全原因,服务器是否应该验证带有 HttpOnly 的 Cookie??
我们目前正在从 .NET MVC 迁移到 Angular SPA。我们有自己的基于令牌的身份验证机制。
我在登录请求中的 HttpOnly cookie 中设置此令牌,该 cookie 在客户端正确更新。到现在为止还挺好。这个问题有两个部分。
一、当服务器收到后续请求时,是否应该检查cookie是否为HttpOnly?我相信出于安全原因,这很重要。例如
即使 cookie 不能被 javascript 复制,任何恶意用户都可以手动复制 cookie 值。因此,服务器至少应该检查 cookie 是否仍然具有 HttpOnly 标志。我的推理有效吗?我找不到任何关于此的信息。有必要检查这个标志吗?
其次,即使我在后续调用中检查 cookie,服务器也会收到 httpOnly 标志为 false。为什么会发生这种情况?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
#翻译# 2012 版获得 httponly cookie 权限教程
第一次尝试获取到 HttpOnly cookie是通过XST (Cross Site Tracing:跨站跟踪)漏洞.
不久之后开始普及XST,再之后, 浏览器还在XMLHttpRequest中封锁了TRACE方法 (i.e. xmlhttp.open(''TRACE'', url, true)].
Angular 8:将JWT令牌安全地存储在httpOnly cookie中
如何解决Angular 8:将JWT令牌安全地存储在httpOnly cookie中?
我有一个带有PHP后端登录功能的有角度的网站。登录时,响应中包含一个用户特定的令牌,该令牌用于在发出进一步请求时识别用户。我打算将令牌存储在客户端Cookie中。我在很多地方都读到,与普通客户端cookie相比,将令牌存储在httponly cookie中更安全。我对angular并不陌生,我并不完全了解这种机制。有人可以帮助阐明这一点。并让我对它的工作原理有所了解。 谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
asp.net core 3.1 cookie httpOnly 登录验证
region set-cookie to ie
1.startup.cs ConfigureServices 添加
//注册Cookie认证服务
services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
.AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, option =>
{
option.AccessDeniedPath = "/Login"; //当用户尝试访问资源但没有通过任何授权策略时,这是请求会重定向的相对路径资源
option.LoginPath = "/Login/";
option.Cookie.Name = "token";//设置存储用户登录信息(用户Token信息)的Cookie名称
option.Cookie.HttpOnly = true;//设置存储用户登录信息(用户Token信息)的Cookie,无法通过客户端浏览器脚本(如JavaScript等)访问到
//option.Cookie.SecurePolicy = Microsoft.AspNetCore.Http.CookieSecurePolicy.Always;//设置存储用户登录信息(用户Token信息)的Cookie,只会通过HTTPS协议传递,如果是HTTP协议,Cookie不会被发送。注意,option.Cookie.SecurePolicy属性的默认值是Microsoft.AspNetCore.Http.CookieSecurePolicy.SameAsRequest
});
2.startup.cs Configure添加
//要放在app.UseRouting、app.UseCors之后,并且在app.UseEndpoints之前
app.UseAuthentication();
app.UseAuthorization();
3.login 方法:
//下面的变量claims是Claim类型的数组,Claim是string类型的键值对,所以claims数组中可以存储任意个和用户有关的信息,
//不过要注意这些信息都是加密后存储在客户端浏览器cookie中的,所以最好不要存储太多特别敏感的信息,这里我们只存储了用户名到claims数组,
//表示当前登录的用户是谁
//var claims = new[] { new Claim("token", UserName) };
//var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
//ClaimsPrincipal user = new ClaimsPrincipal(claimsIdentity);
//Task.Run(async () =>
//{
// //登录用户,相当于ASP.NET中的FormsAuthentication.SetAuthCookie
// await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user);
// //可以使用HttpContext.SignInAsync方法的重载来定义持久化cookie存储用户认证信息,例如下面的代码就定义了用户登录后60分钟内cookie都会保留在客户端计算机硬盘上,
// //即便用户关闭了浏览器,60分钟内再次访问站点仍然是处于登录状态,除非调用Logout方法注销登录。
// //注意其中的AllowRefresh属性,如果AllowRefresh为true,表示如果用户登录后在超过50%的ExpiresUtc时间间隔内又访问了站点,就延长用户的登录时间(其实就是延长cookie在客户端计算机硬盘上的保留时间),
// //例如本例中我们下面设置了ExpiresUtc属性为60分钟后,那么当用户登录后在大于30分钟且小于60分钟内访问了站点,那么就将用户登录状态再延长到当前时间后的60分钟。但是用户在登录后的30分钟内访问站点是不会延长登录时间的,
// //因为ASP.NET Core有个硬性要求,是用户在超过50%的ExpiresUtc时间间隔内又访问了站点,才延长用户的登录时间。
// //如果AllowRefresh为false,表示用户登录后60分钟内不管有没有访问站点,只要60分钟到了,立马就处于非登录状态(不延长cookie在客户端计算机硬盘上的保留时间,60分钟到了客户端计算机就自动删除cookie)
// /*
// await HttpContext.SignInAsync(
// CookieAuthenticationDefaults.AuthenticationScheme,
// user, new AuthenticationProperties()
// {
// IsPersistent = true,
// ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(60),
// AllowRefresh = true
// });
// */
//}).Wait();
4. 验证是否登录
// 如果HttpContext.User.Identity.IsAuthenticated为true,
//if (HttpContext.User.Identity.IsAuthenticated) //HttpContext.User.Identities.Count()>0)
//{
// HttpContext.AuthenticateAsync();
// //这里通过 HttpContext.User.Claims 可以将我们在Login这个Action中存储到cookie中的所有
// //claims键值对都读出来,比如我们刚才定义的UserName的值Wangdacui就在这里读取出来了
// var userName = HttpContext.User.Claims.First().Value;
// if (!string.IsNullOrEmpty(userName))
// {
// bool IsLogin = true;
// }
//}
//string str = Request.HttpContext.Connection.LocalIpAddress.MapToIPv4().ToString() + ":" + Request.HttpContext.Connection.LocalPort;
asp.net-mvc-4 – SessionAuthenticationModule Cookie处理程序没有创建HttpOnly安全cookie
我的ClaimsBasedAuthenticationService类从SessionSecurityToken发出SAM cookie,一切都很好……除了我刚才注意到它没有创建会话cookie作为HTTPOnly或要求他们需要SSL.当我调试代码时,我可以看到在调试器中正确设置了CookieHandler对象上的那些属性,但是创建的最终会话cookie根本没有标记HTTPOnly和Secure标志.
我有web.config行将这些显式设置为true,如下所示:
<system.web> <httpCookies httpOnlyCookies="true" requireSSL="true" /> <authentication mode="Forms"> <forms ... requireSSL="true" /> </authentication> ... </system.web> <system.identityModel.services> <federationConfiguration> <cookieHandler requireSsl="true" hideFromScript="true" /> </federationConfiguration> </system.identityModel.services>
有人可以告诉我,为了让我的FedAuth cookie从脚本(HTTPOnly)中隐藏并需要SSL,我还缺少其他东西吗?
解决方法
关于出于安全原因,服务器是否应该验证带有 HttpOnly 的 Cookie?和服务器端验证是为了保证给用户较快的响应速度的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于#翻译# 2012 版获得 httponly cookie 权限教程、Angular 8:将JWT令牌安全地存储在httpOnly cookie中、asp.net core 3.1 cookie httpOnly 登录验证、asp.net-mvc-4 – SessionAuthenticationModule Cookie处理程序没有创建HttpOnly安全cookie等相关知识的信息别忘了在本站进行查找喔。
本文标签: