web - cookie

理解Web Cookie的类型、属性及操作
本文详细解析了Web Cookie的两种类型——会话Cookie和持久化Cookie,介绍了Cookie的基本属性及其在Web开发中的作用。同时,文章还演示了如何在不同环境下创建和管理Cookie,包括使用Java和JSP进行持久化Cookie的创建。此外,文章讨论了网站登录中持久化Cookie的使用策略,强调了Cookie安全性的重要性,并提供了Cookie传输机制的概述。

1. cookie 分为:会话cookie和持久化cookie两种。

       ● 会话cookie只存在于内存中;

       ● 持久化cookie可以存在几个月甚至几年,持久化cookie创建后,会被浏览器长久地保存在用户的电脑上。(如IE存在这个文件夹里:\Documents and Settings\[user]\Cookies)

2. cookie 属性

       expires/max-age  -   指定了cookie的生存期,默认情况下cookie是暂时存在的

       domain - 可以使多个web服务器共享cookie。

       path -

       secure - 它是一个布尔值,指定在网络上如何传输cookie,默认是不安全的,通过一个普通的http连接传输,sercure为true是 通过https传输。

       httpOnly - 限制范文cookie的方式。

       有关安全性:http://www.educity.cn/wenda/100626.html

3.cookie的传输

      浏览器将cookie信息以name-value对的形式存储于本地,每当请求新文档时,浏览器将发送Cookie

      详情参照: http://www.chinaz.com/web/2012/0905/272814.shtml

4.创建cookie

     ● 创建会话cookie

        通过Response.Cookies集合添加cookie来创建新的cookie。

     ● 创建持久化cookie

        如果希望创建持久化cookies,则需要为cookie指定一个过期时间。如下面程序中Respo.Cookies["counter"].Expires = DataTime.Now.AddYears(2);

         jsp创建cookie: http://www.cnblogs.com/hellolong/archive/2012/11/15/2771437.html

         java创建cookie:  http://bbs.youkuaiyun.com/topics/390940551

5.网站登录持久化cookie方案

         前提

         1. Cookie 是脆弱的。cookie 容易被窃取和受到垮站脚本的攻击,我们必须接受 cookie 是不安全的。
         2. 持久化登录 cookies 使得它们能通过网站的认证。这跟使用用户名和密码登录是相同的。
         3. 能从登录 cookie 里恢复密码的设计比不能恢复更危险。
         4. 把持久化 cookie 跟 ip 绑定起来大多数时候使它们并不持久。
         5. 用户可能希望同时把 cookie 持久保存在多个浏览器,多台机器上

         http://www.jb51.net/article/48803.htm

6. cookie机制

http://wenku.baidu.com/link?url=NG52ydQ8G8HMzMxVzN273gBXOESVx2X9xOgHu5qbk5zISdX6Ipi0cx8gsHEpbQydOA0yZWmzcs-Xi50_GzBjP5ahdA49jeyAyxqFOtW7BPy

7. 读写cookie 

http://blog.youkuaiyun.com/ago52030/article/details/1834237

http://www.cnblogs.com/muzongyan/archive/2010/08/30/1812552.html

 

        

 

 

      

### Web Cookie 的安全性及攻防技术 #### HttpOnly 属性的作用 为了防止跨站脚本攻击(XSS),Web 应用程序可以通过设置 `HttpOnly` 属性来增强 cookie 的安全性。当一个 cookie 被标记为 `HttpOnly` 时,浏览器会阻止 JavaScript 访问该 cookie,从而减少因 XSS 攻击而导致的敏感数据泄露风险[^1]。 #### Secure 属性的重要性 除了 `HttpOnly` 外,另一个重要的 cookie 属性是 `Secure`。此属性确保 cookie 只能通过 HTTPS 进行传输,有效防范中间人攻击以及 HTTP 劫持带来的威胁[^4]。因此,在启用 HTTPS 的环境中,建议始终为涉及隐私信息的 cookie 设置 `Secure` 属性。 #### 防范 CSRF 攻击 即使启用了上述防护措施,仍需注意跨站请求伪造 (CSRF) 攻击的风险。如果攻击者能够盗取用户的 cookie 并利用其冒充合法用户执行操作,则可能造成严重后果。例如,攻击者可能会替换目标网站上的认证凭证并尝试恢复密码或其他敏感功能访问权限[^2]。针对此类问题的有效解决方案之一是在表单提交过程中引入一次性令牌验证机制。 #### 测试与检测潜在漏洞 开发人员应定期审查代码逻辑是否存在可能导致暴露 document.cookie 值的情况,比如未加过滤即嵌入外部资源或动态生成 HTML 片段等行为。下面是一个简单的测试案例用于演示如何触发基本类型的反射型 XSS: ```html <script>alert(document.cookie)</script> ``` 这段脚本一旦被执行就会弹窗显示当前页面的所有 cookies 内容[^3]。理想情况下,任何来自不可信源的数据都应当经过严格转义处理后再渲染至前端界面。 --- #### 综合防御策略总结 - **使用 HttpOnly 和 Secure 标志**:最大限度降低客户端脚本读写能力的同时强制采用加密通道传递重要资料; - **实施严格的 CORS 策略**:控制哪些域允许发起跨域请求,缩小受控范围内的交互边界; - **部署 Content Security Policy(CSP)** :定义可加载资源白名单列表进一步压缩恶意注入空间; - **强化身份验证流程**:结合多因子认证方法提高账户接管难度; 以上这些最佳实践结合起来可以帮助构建更加健壮可靠的 web application security framework.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值