HttpOnly Cookie 怎么讲

HttpOnly是加在cookies上的一个标识,用于告诉浏览器不要向客户端脚本(document.cookie或其他)暴露cookie。HttpOnly背后的相关议题是:当网站存在跨站脚本攻击(XSS)漏洞时,黑客通过执行脚本获得cookie时被阻止,从而在根本上杜绝这种类型的攻击。
当你在cookie上设置HttpOnly标识后,浏览器就会知会到这是特殊的cookie,只能由服务器检索到,所有来自客户端脚本的访问都会被禁止。当然也有前提:使用新版的浏览器。
HttpOnly Cookie 最初由 Microsoft’s Internet Explorer 6 SP1引入,至今为止,已是设置会话cookie的最佳实践了。
其语法如下:

Set-Cookie: Name=Value; expires=Wednesday, 01-May-2014 12:45:10 GMT; HttpOnly

在上面的HTTP请求头中,HttpOnly知会浏览器在保存cookie,但不要向客户端脚本开放访问权限。

另外还有一个安全标识可以强制浏览器发送cookie的时候采用安全通道,比如HTTPS,可以防止被监听。尤其是在HTTPS连接被一些工具(比如SSLStrip等)降级到HTTP。
该语法为:

Set-Cookie: Name=Value; expires=Wednesday, 01-May-2014 12:45:10 GMT; Secure

在这个HTTP头信息中,Secure标识知会浏览器使用安全的加密通道发送cookie。

原文:https://latesthackingnews.com/2017/07/03/what-is-httponly-cookie/

PHP中的设置 
 PHP5.2以上版本已支持HttpOnly参数的设置,同样也支持全局的HttpOnly的设置,在php.ini中

 session.cookie_httponly = 
设置其值为1或者TRUE,来开启全局的Cookie的HttpOnly属性,当然也支持在代码中来开启: 
 <?php
  ini_set("session.cookie_httponly", 1); 
 // or
  session_set_cookie_params(0, NULL, NULL, NULL, TRUE); 
 ?> 
Cookie操作函数setcookie函数和setrawcookie函数也专门添加了第7个参数来做为HttpOnly的选项,开启方法为: 
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE); 
 setrawcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
 对于PHP5.1以前版本以及PHP4版本的话,则需要通过header函数来变通下了: 
 <?php
  header("Set-Cookie: hidden=value; httpOnly");
  ?> 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值