`
tuhaitao
  • 浏览: 378837 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

cookie安全

    博客分类:
  • java
阅读更多
cookie的domian,path,expires,这些在cookie操作中都会经常用到

但是对于客户端浏览器来说这些都是可见的,通过document.cookie可以直接在脚本里输出,这里很容易被注入一些js脚本,获取到本地的cookie,发送到其他地方去,泄露个人隐私,也许大家会认为session安全,通常会听到某某某大侠说,session是保存在服务端的,比cookie安全,可是某某某大侠真的清楚http协议吗?http协议规范定义http是无状态协议, 那么为什么能在服务端保存状态, 建议大家看一下我写的session原理。

    相信用过tomcat的人都会知道有个jsessionid这个东东,这个便是服务端为了保持客户端的状态,通常在客户端cookie里写入的jsessionid这个参数, 这个cookie的有效期是进程, 也就是关闭浏览器,即失效, 如果在客户端不支持cookie的情况下, 服务端可以通过url rewrite技术重写客户端请求url, 也就是在客户端请求url的后便加入jsessionid=xxxxxxx这样的参数,但归根结底还是在客户端保存了jsessionid这样的信息,cookie与url的参数都可以被本地植入的脚本取到, 打开firefox的firebug,,在控制台输入document.cookie;看一下,所有的cookie信息全在里边了, 在IE中可以在地址栏里直接输入javascript:alert(document.cookie);.也可以看到cookie中的信息,所以这样保存的cookie一旦被黑客注入的脚本获得到,就可以发送jsessionid这样的东东到其他地方去。

    很多人使用session验证用户登录状态,包括spring security这样的安全框架,默认都是采用session来保存用户状态信息,那么一旦某个用户登录了,但是jsessionid通过黑客的脚本,就可以被发送到其他地方,黑客可以直接吧jsessionid参数贴在请求url之后,那么一切的验证就从容而破。
  
    针对这样的问题,可以采用http only的cookie, 使得本地脚本无法获得该cookie, 只有通过http协议的程序才能使用这个cookie,加上cookie限制domian,达到防止恶意脚本泄露cookie的目的,基于原理来看http only cookie 是很简单的:

Set-Cookie  ASP.NET_SessionId=h1tgc555io1lav2dfi1pqdiq; path=/; HttpOnly


比起一般的cookie,只是在后端加入了HttpOnly的字符串,这项规范早在Internet Explorer 6 SP1就引入了(这是我第一次对微软有好感^!^),在现在的主流浏览器中,firefox,chrome都有支持,如果是这样的cookie,则在本地使用document.cookie是得不到的,浏览器已经对dom隐藏该cookie, 但是现在sun的api还未对改属性做支持,如果要在java中用到,只能手动去设置相应的cookie头,加上HttpOnly, 希望sun, 不应该是oracle了, 杯具, 尽快支持吧。



分享到:
评论

相关推荐

    同源策略以及cookie安全策略

    【Cookie安全策略】是确保Cookie安全的重要手段,包括设置各种属性如Domain、Path、Secure、Expires、MaxAge和HttpOnly。HttpOnly属性可以防止JavaScript访问Cookie,从而减少Cookie被篡改或窃取的风险。然而,尽管...

    mvc中cookie安全

    **标题解析:**“mvc中cookie安全”这个标题聚焦于在使用Model-View-Controller (MVC)架构的Web应用程序中处理Cookie的安全性问题。在Web开发中,Cookie常用于存储用户状态信息,如会话ID,但如果不妥善管理,可能会...

    Web前端黑客技术揭秘(Web2Hack.org)_(g)2.5.4 Cookie安全1

    Web前端黑客技术揭秘中关于Cookie安全的讨论主要集中在如何利用和保护这个常见的用户身份验证机制。Cookie是一个在浏览器和服务器之间传递信息的小型文本文件,它对于实现会话管理、个性化体验等功能至关重要,但也...

    计算机后端-PHP视频教程. php之blog实战51-cookie安全.wmv

    计算机后端-PHP视频教程. php之blog实战51-cookie安全.wmv

    HTTP cookie.doc

    - **安全性**:虽然Cookie本身不是可执行代码,不包含恶意软件,但它们可能被用于非法目的,如跟踪用户活动或在某些情况下窃取敏感信息。 - **生命周期**:服务器可以设定Cookie的生命周期,过了这个时间,浏览器将...

    express入门(10)- cookie

    ### Express 入门(10)- Cookie 在Web开发中,Cookie是一种非常重要的技术,它可以...同时,我们也强调了保护Cookie安全的重要性以及如何实施这些保护措施。希望这些知识能够帮助你在实际项目中更好地管理用户会话。

    cookie中转sql攻击

    5. **防御措施**:博主可能提到了防止这种攻击的策略,如使用预编译的SQL语句、输入验证、限制SQL命令的执行权限、设置合适的Cookie安全属性等。 【标签】:“源码”和“工具”暗示了文章可能包含: - **源码分析*...

    cookie在线注入工具 V2.0.rar

    "Cookie在线注入工具 V2.0" 是一个专门针对Web应用程序安全的工具,主要用于测试和分析网站的Cookie安全性。Cookie是网站在用户浏览器上存储的小型数据块,通常用于用户身份验证、会话管理等。此工具的V2.0版本可能...

    基于Cookie劫持的Deep-Web用户数据安全性分析.rar

    2. **Cookie安全设置**:限制Cookie的生命周期、设置HttpOnly标志(阻止JavaScript访问Cookie)、使用Secure标志(只在HTTPS下发送Cookie)以及设置SameSite属性(防止跨站请求伪造,CSRF)都能增强Cookie的安全性。...

    session与cookie

    Session存储在服务器内存中,相比Cookie安全性更高,但消耗服务器资源。 **二、会话Cookie与持久Cookie的区别** 1. **会话Cookie**:若未设置过期时间,Cookie生命周期仅限于当前浏览器会话,关闭浏览器窗口后即...

    cookie

    6. **Cookie的安全性**:如何防止跨站脚本攻击(XSS)和跨站请求伪造攻击(CSRF),以及HTTPS对Cookie安全性的提升。 7. **Cookie的最佳实践**:例如,避免使用敏感信息作为Cookie值,限制Cookie的生命周期,使用...

    uid-safe:URL和cookie安全的UID

    uid-safe URL和cookie安全的UID 创建对Cookie和URL使用均安全的加密安全UID。 这与诸如的模块形成对比,该模块的UID实际上由于使用%而产生了偏差,从而不必要地截断了UID。 如果您仍然可以在UID中使用-和_ ,请使用...

    基于forms身份验证,使用cookie实现。

    4. **Cookie安全**:启用HTTPS协议可以保护Cookie在传输过程中不被窃取,同时使用HttpOnly标志防止跨站脚本攻击。 **四、实战演练** 在提供的`WebSite6`项目中,你可以看到一个简单的示例,包括登录页面、受保护的...

    cookie+session实现的单点登录案例

    - **Cookie安全**:应设置Cookie的安全属性(Secure和HttpOnly),防止XSS攻击和通过HTTP协议窃取Cookie。 - **Session管理**:定期清理过期Session,防止Session劫持。 - **令牌安全**:对访问令牌进行加密,且要...

    cookie注入工具

    Cookie注入工具是一种在网络安全和渗透测试领域常用的工具,主要用于检测和利用网站的Cookie安全漏洞。在Web应用程序中,Cookie常用于存储用户会话信息、偏好设置等数据,但不恰当的处理可能导致敏感信息泄露或者...

    最全如何安全的处理cookie,不让cookie被利用

    史上最全如何安全的处理cookie,不让cookie被利用最全如何安全的处理cookie,

    js控制的cookie

    4. **Cookie 安全性问题**:由于 Cookie 通常以纯文本形式存储在用户硬盘上,容易被恶意软件读取,因此不适合存储敏感信息。 #### 四、设置和读取 Cookie 在 JavaScript 中,可以通过操作 `document.cookie` 属性...

    安全编码的基本准则,安全编码开发规范。

    四、Cookie 安全 * 不能将敏感数据直接保存到Cookie中。 * 如果确实需要将敏感数据临时保存到Cookie中,必须做加密处理。 五、加密算法 * 密码之类的敏感数据一定不能明文保存,只能保存Hash值,并在计算Hash时...

    cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统

    - **Cookie安全属性**:设置HttpOnly和Secure标志,防止跨站脚本攻击(XSS)和非HTTPS环境下的数据泄露。 - **Token签名**:使用非对称加密算法,确保Token的完整性和不可篡改性。 - **Token刷新**:定期更新SSO ...

Global site tag (gtag.js) - Google Analytics