Asp.net core 如何使用.NET Core 2.1将Set Cookie响应参数分配给安全
在.NET Core 2.1应用程序中,我在将Asp.net core 如何使用.NET Core 2.1将Set Cookie响应参数分配给安全,asp.net-core,cookies,.net-core,Asp.net Core,Cookies,.net Core,在.NET Core 2.1应用程序中,我在将Set Cookie响应头分配给Secure时遇到问题 在我的Startup.cs中,我已在ConfigureServices()中将CookieSecurePolicy设置为Always: 但是,当我运行cURL时,它仍然显示我的IP和路径,而不是像这样的“安全”: 但是Set Cookie标题仍然不显示为Secure。我错过了什么?谢谢大家! 安全标志指示cookie是否可以通过HTTP传输CookieSecurePolicy.Always意味着
Set Cookie
响应头分配给Secure
时遇到问题
在我的Startup.cs
中,我已在ConfigureServices()中将CookieSecurePolicy
设置为Always
:
但是,当我运行cURL
时,它仍然显示我的IP和路径,而不是像这样的“安全”:
但是Set Cookie
标题仍然不显示为Secure
。我错过了什么?谢谢大家! 安全
标志指示cookie是否可以通过HTTP传输CookieSecurePolicy.Always
意味着只有在连接安全时才会传输它(HTTPS
)
没有针对实际cookie值的内置附加加密。如果您使用的是HTTPS
,则它们会由于位于标头中而被加密,标头本身是加密的,至少在传输过程中是加密的。但是,一旦在客户端计算机上,它就在您发送它时存在
如果您想要实际加密该值,则需要在设置cookie之前进行加密,然后使用预加密的值来设置cookie。然后,当您阅读cookie时,您还需要自己解密它。谢谢Chris!我们的appscan返回时带有一个与以下相关的高漏洞:
加密会话(SSL)Cookie中缺少安全属性
。因此,我认为将CookieSecurePolicy
设置为Always
可以解决这个问题,但事实并非如此。我在正确的轨道上吗?是的,这就是安全
标志的作用。并且安全
标志在使用CookieSecurePolicy时设置。始终
?因为,当该策略设置为始终
时,安全
标志不会显示在cURL
响应上(如所示)。我错过了什么?是的。不知道为什么它没有显示出来。也许你需要重建什么的?奇怪。我正在通过将应用程序部署到Kubernetes集群进行测试,因此每次部署时都应该重新构建应用程序。我们的AppScan专家说Kestrel不支持“安全”标志。红隼并不是我的专长,所以我不能断言这是否准确
services.AddSession(options =>
{
options.Cookie.SecurePolicy = CookieSecurePolicy.Always;
});
lewallen$ cURL -il https://example.com
HTTP/1.1 200 OK
Date: Wed, 11 Sep 2019 17:47:54 GMT
Content-Type: text/html; charset=utf-8
Server: Kestrel
Transfer-Encoding: chunked
X-Frame-Options: SAMEORIGIN
Strict-Transport-Security: max-age=31536000; includeSubdomains; preload
Set-Cookie: SERVERID=IP ADDRESS EXPOSED HERE; path=/ <-- this should be secure
Cache-control: private
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
options.Secure = CookieSecurePolicy.Always; <-- Placed here
});