永久 Cookie 包含敏感会话信息 Laravel 使用 Appscan 安全工具

Posted

技术标签:

【中文标题】永久 Cookie 包含敏感会话信息 Laravel 使用 Appscan 安全工具【英文标题】:Permanent Cookie Contains Sensitive Session Information Laravel using Appscan security tool 【发布时间】:2019-01-23 01:01:14 【问题描述】:

我已经使用 AppScan 工具扫描了 Laravel 项目,我在 AppScan 安全文档中遇到了安全问题 Permanent Cookie Contains Sensitive Session Information

这是Header的My Network信息:

Cache-Control: no-cache, private
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 3692
Content-Type: text/html; charset=UTF-8
Date: Thu, 16 Aug 2018 06:01:02 GMT
Expires: 0
Pragma: no-cache
Server: Apache
Set-Cookie: XSRF-TOKEN=eyJpdiI6Ik9XVzJyOXRSZ0JkRnhaTXdkZlQzeVE9PSIsInZhbHVlIjoibUxEKzBLUHdCM2VwWVc4MzhPNjR3TmpcL2VZdWJXRjJmeVZklSaGtnb2RRblVBblpXNEVDS1wvMXExKzQwaE9NWlQwVFRpUTZiTHB3b1ZRMlcwZz09IiwibWFjIjoiNzhmMDg4MjUzN2YzMDA3MDg3MTJiOGNkMTQ4MTZlNWIyZWZiZTkxYjgwNzI1NzVmMzBmNWQyYjE1ZThjZDc3MiJ9; expires=Thu, 16-Aug-2018 08:01:02 GMT; Max-Age=7200; path=/; secure;HttpOnly;HttpOnly;Secure
Set-Cookie: laravel_session=eyJpdiI6InJpK3FNeHhTMGFEUUgxSGxKUkc1Rmc9PSIsInZhbHVlIjoieVRGaGpMcnJ3bnBrWCtOTzZcL2dzVFRKNDl5U29jUTlvb0tSZE54d2YxbTFvSHZ3TW5jc2FXcFwvcjhLaXlFN2R5eEo0Tlpoa1FxY0VUWlJ5bUjIjoiYTY2MjkwODU3YWQyMTFmZTJkNmZlMWUzMTgyYzk2NjA2OTBiMDgyODMzM2ZlZjg4NDE4MDBjZDFkYmIyNmEyMCJ9; expires=Thu, 16-Aug-2018 08:01:02 GMT; Max-Age=7200; path=/; secure; httponly;HttpOnly;HttpOnly;Secure
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Vary: Accept-Encoding
X-Content-Security-Policy: allow 'self';
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block

当我从服务器端停止/删除 cookie 时。我将阻止 csrf 令牌。 我该如何解决这个安全问题?

请帮忙!! 提前致谢

【问题讨论】:

您的 CSRF-Token 不包含任何敏感数据。它用于防止会话窃取 @Phil795 为什么appScan工具报告这个问题可以解释一下? 【参考方案1】:

我认为这是 AppScan 应用程序中的错误。消息已经正确,会话信息存储在 cookie 中。这用于在每个请求中传输此令牌,并在之后发送回一个新的 CSRF 令牌。 由于 cookie 的 Max-Age=7200; cookie 只存在 2 小时。因此,AppScan 关于 cookie 永久存在的说法是错误的。

请记住,每个请求都会为您分配一个新的 CSRF-Token,因此攻击者必须操纵您本地发送的请求才能使用此方法。

【讨论】:

我理解这个流程。但可以提供认证证明是 appScan 的错误? 每次 AppScan 报告此问题时,我都会扫描项目 3 次 可以看到cookie的过期时间。所以 AppScan 关于持久性 cookie 是错误的 在 AppScan 上打开一个工单,让开发人员处理问题

以上是关于永久 Cookie 包含敏感会话信息 Laravel 使用 Appscan 安全工具的主要内容,如果未能解决你的问题,请参考以下文章

烧瓶永久会话:在哪里定义它们?

什么更持久,LocalStorage 或 PHP 会话?

会话跟踪机制:

Cookie与session区别

Cookie与session区别

session与Cookie的区别