PHP设置Cookie的HTTPONLY属性方法

yipeiwu_com5年前PHP代码库

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属性方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【宜配屋www.yipeiwu.com】。

相关文章

Windows下的PHP 5.3.x安装 Zend Guard Loader教程

从PHP5.3开始如果要支持ZendGuard加密的PHP代码,必须安装Zend Guard Loader,老的zend optimizer将不被支持。另外,Zend Guard Loa...

PHP简单实现二维数组赋值与遍历功能示例

本文实例讲述了PHP简单实现二维数组赋值与遍历功能。分享给大家供大家参考,具体如下: 示例1: <?php $loptop1['lid'] = 1000; $l...

关于JSON以及JSON在PHP中的应用技巧

JSON 基础 简单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户...

浅谈php处理后端&接口访问超时的解决方法

【HTTP访问】 一般我们访问HTTP方式很多,主要是:curl, socket, file_get_contents() 等方法。 如果碰到对方服务器一直没有响应的时候,我们就悲剧了,...

PHP下通过系统信号量加锁方式获取递增序列ID

在网上搜了搜,有两个办法但都不太好:一个是简单的以进程ID+时间戳,或进程ID+随机数来产生近似的唯一ID,虽简单但对于追求“完美”的我不愿这样凑合,再说Apache2以后进程会维持相当...