<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>精東·博客 &#187; cookie</title>
	<atom:link href="http://www.wemvc.com/tag/cookie/feed" rel="self" type="application/rss+xml" />
	<link>http://www.wemvc.com</link>
	<description>男人的胸怀是委屈撑大的。</description>
	<lastBuildDate>Sun, 29 Aug 2010 04:21:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>如何防止Session伪造攻击</title>
		<link>http://www.wemvc.com/205.html</link>
		<comments>http://www.wemvc.com/205.html#comments</comments>
		<pubDate>Sun, 17 Aug 2008 15:48:42 +0000</pubDate>
		<dc:creator>精东</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[session]]></category>
		<category><![CDATA[安全]]></category>
		<category><![CDATA[攻击]]></category>

		<guid isPermaLink="false">http://www.wemvc.com/?p=205</guid>
		<description><![CDATA[什么是SESSION伪造攻击:
Session伪造攻击是一种非常流行的针对session的攻击方式.它之所以流行的主要原因是:它是一个攻击者获得一个有效的SESSION ID(标识符)最简单的方法.使用这种方法,可以模仿当前用户的SESSION ID,伪装成这个用户,然后进一步进行SESSION劫持攻击.
任何促使受害用户使用攻击者提供的SESSION ID的方法都可以称之为SESSION伪造攻击,最简单的例子就是在一个链接中嵌入SESSION标识符:
&#60;a href=&#8221;http://www.wemvc.com/login.php?PHPSESSIONID=123123&#8243;&#62;登录&#60;/a&#62;
受害者点击了这个链接后将会把SESSION ID设置为123123.而且如果受害者在这个时候继续登录,攻击者就能够劫持他的SESSION用来提升自己的权限级别.甚至在购物类型网站中盗取他人帐户钱财.
这种攻击方法有很多变体,有一些使用COOKIES来达到自己的攻击目的,例如我在前一篇博文中写到的利用COOKIE和SESSION联用实现session跨域,那里就是用COOKIE来存储SESSION ID的,攻击者伪造COOKIE也可以变成受害者的身份去登录他的帐户.幸运的是针对这些攻击的防范,php也给了我们非常简单易懂并且通用的方法来处理.无论什么时候,只要有权限级别的改变,如果一个用户登录的时候,就用session_regenerate_id()函数来重新生成SESSION ID,无论是用POST/GET或者COOKIE方式传递SESSION ID 这个函数都适用.
代码片段:
&#38;lt;?php
if(checklogin($user_name,$password){
$_SESSION['auth'] = TRUE;
session_regenerate_id();
}
?&#38;gt;
这样可以有效的避免SESSION伪造攻击,可以确保每个用户登录时(或者有权限提升时)都被分配新的随机的SESSION ID.
]]></description>
		<wfw:commentRss>http://www.wemvc.com/205.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>php中COOKIE与SESSION联用实现SESSION跨域</title>
		<link>http://www.wemvc.com/189.html</link>
		<comments>http://www.wemvc.com/189.html#comments</comments>
		<pubDate>Sun, 17 Aug 2008 14:41:17 +0000</pubDate>
		<dc:creator>精东</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.wemvc.com/?p=189</guid>
		<description><![CDATA[大家都知道SESSION是不可以跨域的,也就是说: A.WEMVC.COM这个域的可执行文件不可以访问到B.WEMVC.COM的SESSION,这个是SESSION的特性,同样也是出于安全角度才这样的.
在一般情况下,一个网站只有一个域名,www.wemvc.com,但是也有些网站架构是由多个子域名组建的.所以就需要SESSION可以跨子域被访问到,这样才可以实现用户的跨域登录.就是说客户在A下登录的,同样B也同时登录了,不需要用户再次登录,同时也实现了参数的跨域传递.当然不可跨域的SESSION本身已经可以帮助我们做很多事情了,那么跨域后的SESSION呢.读到这里是否很激动人心,当然你也可能是正在为SESSION跨域而发愁而找到这篇文章的,同样也祝贺你.我们长话断说了,开始我们今天的课程:COOKIE与SESSION联用实现SESSION跨域.
首先让我们再重新温习下PHP中的COOKIE和SESSION:
COOKIE:
定义:
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时，它同时会发送 cookie。通过 PHP，您能够创建并取回 cookie 的值。PS:其中文名叫&#8221;曲奇&#8221;.
在PHP中用setCookie函数来设置COOKIE,该函数一共有7个参数(在此我要向曾经我面试过的一位同仁道歉,当时我把答案说成了6个,SORRY~,同时我也提醒广大作家尽快更新自己的文章,在PHP5.2.0版本中已经增加为7个参数.),这7个参数分别为 string $name [, string $value [, int $expire [, string $path [, string $domain [, bool $secure [, bool $httponly ]]]]]] .

 name  

The name of the cookie. 规定 cookie 的名称。

 value  

The value of the cookie.  This value is stored on the clients [...]]]></description>
		<wfw:commentRss>http://www.wemvc.com/189.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
