Cookie与系统安全

简介: Cookie的安全往往被程序员们所忽视,首先来了解一下Cookie是什么? 背景: 程序员们用Session在服务端保存着和用户相关的信息,当用户退出时,或关闭浏览器时session就失效了,这时程序员们希望通过用户每次请求时所带的一些数据来识别之前登录过的用户,于是在用户的浏览器中就出现了Cookie。

Cookie的安全往往被程序员们所忽视,首先来了解一下Cookie是什么?

背景:

程序员们用Session在服务端保存着和用户相关的信息,当用户退出时,或关闭浏览器时session就失效了,这时程序员们希望通过用户每次请求时所带的一些数据来识别之前登录过的用户,于是在用户的浏览器中就出现了Cookie。

用途:

Cookie中往往存储着和用户相关的信息,这些信息有时可以标识着一个身份,请求跨站伪造(CSRF就是利用了Cookie代表着一个用户的特性,因为在浏览器中,通过一些方法,我们可以修改请求中的cookie,如果改成了和一个已经登录且生效的用户的cookie一样,那系统就会误认为我就是那个已经登录的那个人,而事实我却并没有输入什么用户名密码登录。

那么如何伪造Cookie呢?其实这是跨站脚本攻击(XSS)的目的,用一个脚本来获取别人正在使用的Cookie,再通过邮件或其他方式,将获取到的Cookie发送给攻击者。获取cookie的JS很简单:

var mycookie = document.cookie;
写cookie的话也很简单:
document.cookie='key=value;'

如何防范:

要想让Cookie安全还是有方法的,首先要了解Cookie有哪些属性:


Name:Cookie的名字

Value:Cookie的值

DomainCookie作用在哪个域名下

PathCookie作用在什么上下文

Expires:有效时间

HTTP:httponly,防止JS获取,只作用在传输过程中

Secure:是否只作用在HTTPS的方式下

通过设置httponly属性可以防止cookie被别人窃取伪造,对于HTTPS的接口,最好还要设置Secure也为true。

注意事项:

很少有程序员重视cookie的安全性,更不重视Cookie的httponly功能,导致了大量的用户受到甚至财产上的损失。

还有要注意的是Cookie是有作用域和作用上下文的,如果作用域和作用上下文设置不当,服务端是取不到值的,这个在做APP时会常遇到,就是在APP设置了cookie时,在服务端没生效,因为没取到。


目录
相关文章
|
6月前
|
存储 搜索推荐 UED
攻防世界09cookie
攻防世界09cookie
|
安全 测试技术
网站CSRF跨站漏洞修复方案
CSRF通俗来讲就是跨站伪造请求攻击,英文Cross-Site Request Forgery,在近几年的网站安全威胁排列中排前三,跨站攻击利用的是网站的用户在登陆的状态下,在用户不知不觉的情况下执行恶意代码以及执行网站的权限操作,CSRF窃取不了用户的数据,只能执行用户能操作的一些数据。比如在用户不知道的情况下, 把账户里的金额,以及银行卡号,体现功能,都转移到其他人账户里去。如果被攻击者是一个管理员的权限,那么就会对网站安全构成严重的危害。
1245 0
网站CSRF跨站漏洞修复方案
|
15天前
|
存储 安全 Java
如何确保 CSRF 令牌的安全性
CSRF 令牌是保护网站免受跨站请求伪造攻击的重要机制。为确保其安全性,需采取措施如:使用Https协议、设置HttpOnly和Secure标志、采用同源策略、定期更新令牌等。
|
安全 中间件 数据安全/隐私保护
Django中防范CSRF跨站点请求伪造攻击
Django中防范CSRF跨站点请求伪造攻击
110 0
|
存储 JavaScript 前端开发
网络安全——XSS之被我们忽视的Cookie
Cookie在我们身边一直被大家所使用着,但却一直被忽视,那我们今天就一起来看看到底什么是Cookie,和我们的网络安全又有什么联系呢
4263 10
网络安全——XSS之被我们忽视的Cookie
|
存储 安全 Java
网站安全测试,会话 cookie 中缺少 HttpOnly 属性
可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务 “HttpOnly”属性的会话 cookie。由于此会话 cookie 不包含“HttpOnly”属性,因此 注入站点的恶意脚本可能访问此 cookie,并窃取它的值。任何存储在会话令牌中的 信息都可能被窃取,并在稍后用于身份盗窃或用户伪装。
692 0
XSRF CRFS(跨站请求伪造,单点登录攻击) 特点和原理
概念:跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
XSRF CRFS(跨站请求伪造,单点登录攻击) 特点和原理
|
SQL 安全 Python
【Django | 安全防护】CSRF跨站伪请求和SQL注入攻击
【Django | 安全防护】CSRF跨站伪请求和SQL注入攻击
【Django | 安全防护】CSRF跨站伪请求和SQL注入攻击
|
Web App开发 安全 JavaScript
利用httponly提升应用程序安全性
   ==Ph4nt0m Security Team==                       Issue 0x01, Phile #0x06 of 0x06|=------------...
1094 1
|
安全
dedecms v5.7 CSRF保护措施绕过漏洞修复
见https://blog.csdn.net/weixin_41165585/article/details/102679932 找到项目路径下的/dede/config.php文件的第70行附近的 csrf_check() 函数 function csrf_check(){ global $to...
1159 0