Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 如何使用.NET Core 2.1将Set Cookie响应参数分配给安全_Asp.net Core_Cookies_.net Core - Fatal编程技术网

Asp.net core 如何使用.NET Core 2.1将Set Cookie响应参数分配给安全

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意味着

在.NET Core 2.1应用程序中,我在将
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
});