﻿<?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.senfe.com/archives/tag/cookie/feed" rel="self" type="application/rss+xml" />
	<link>http://www.senfe.com</link>
	<description>淡泊以明志，宁静而致远。</description>
	<lastBuildDate>Sat, 28 Jan 2012 13:40:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>用P3P header解决iframe跨域访问cookie/session</title>
		<link>http://www.senfe.com/archives/811.html</link>
		<comments>http://www.senfe.com/archives/811.html#comments</comments>
		<pubDate>Sat, 28 Jan 2012 13:40:02 +0000</pubDate>
		<dc:creator>盛飞</dc:creator>
				<category><![CDATA[织网]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[session]]></category>

		<guid isPermaLink="false">http://www.senfe.com/?p=811</guid>
		<description><![CDATA[理论很简单,而且模式也和大多请求返回状态的SSO差不多.但是有几个地方是要注意一下的. 1.页面里的COOKIE不能是浏览器进程的COOKIE(包括验证票和不设置超时时间的COOKIE),否则跨域会取不到.这点做跨域COOKIE的人比较少提到.不过实际上留意下几家大学做的方案,有细微的提到他们的验证模块里的COOKIE是有设置超时时间的. 2.当利用IFRAME时,记得要在相应的动态页的页头添加一下P3P的信息,否则IE会自觉的把IFRAME框里的COOKIE给阻止掉,产生问题.本身不保存自然就取不到了.这个其实是FRAMESET和COOKIE的问题,用FRAME或者IFRAME都会遇到. 3.测试时输出TRACE,会减少很多测试的工作量. 只需要设置 P3P HTTP Header，在隐含 iframe 里面跨域设置 cookie 就可以成功。他们所用的内容是： P3P: CP=&#8217;CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR&#8217; ASP直接在头部加了头部申明，测试有效。 php的话，我没去试，应该是如下写法： header(&#8216;P3P: CP=CAO PSA OUR&#8217;); ASP.NET的话 通过在代码上加Response.AddHeader(“P3P”, “CP=CAO PSA OUR”)或者在Window服务中将ASP.NET State Service 启动。 JSP: response.setHeader(“P3P”,”CP=CAO PSA OUR”) 转自：http://blog.csdn.net/lanmao100/archive/2008/04/25/2328491.aspx]]></description>
			<content:encoded><![CDATA[<p>理论很简单,而且模式也和大多请求返回状态的SSO差不多.但是有几个地方是要注意一下的.</p>
<p>1.页面里的COOKIE不能是浏览器进程的COOKIE(包括验证票和不设置超时时间的COOKIE),否则跨域会取不到.这点做跨域COOKIE的人比较少提到.不过实际上留意下几家大学做的方案,有细微的提到他们的验证模块里的COOKIE是有设置超时时间的.</p>
<p>2.当利用IFRAME时,记得要在相应的动态页的页头添加一下P3P的信息,否则IE会自觉的把IFRAME框里的COOKIE给阻止掉,产生问题.本身不保存自然就取不到了.这个其实是FRAMESET和COOKIE的问题,用FRAME或者IFRAME都会遇到.</p>
<p>3.测试时输出TRACE,会减少很多测试的工作量.</p>
<p>只需要设置 P3P HTTP Header，在隐含 iframe 里面跨域设置 cookie 就可以成功。他们所用的内容是：</p>
<p>P3P: CP=&#8217;CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR&#8217;<br />
<span id="more-811"></span><br />
ASP直接在头部加了头部申明，测试有效。<br />
<%Response.AddHeader "P3P", "CP=CAO PSA OUR"%></p>
<p>php的话，我没去试，应该是如下写法：<br />
header(&#8216;P3P: CP=CAO PSA OUR&#8217;);</p>
<p>ASP.NET的话<br />
通过在代码上加Response.AddHeader(“P3P”, “CP=CAO PSA OUR”)或者在Window服务中将ASP.NET State Service 启动。 </p>
<p>JSP:<br />
response.setHeader(“P3P”,”CP=CAO PSA OUR”) </p>
<p>转自：http://blog.csdn.net/lanmao100/archive/2008/04/25/2328491.aspx</p>
]]></content:encoded>
			<wfw:commentRss>http://www.senfe.com/archives/811.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript添加、获取和删除Cookie的代码</title>
		<link>http://www.senfe.com/archives/695.html</link>
		<comments>http://www.senfe.com/archives/695.html#comments</comments>
		<pubDate>Fri, 30 Jul 2010 14:40:13 +0000</pubDate>
		<dc:creator>盛飞</dc:creator>
				<category><![CDATA[织网]]></category>
		<category><![CDATA[cookie]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://www.senfe.com/?p=695</guid>
		<description><![CDATA[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 function setCookie&#40;name, value, expires, path, domain&#41;&#123; //name cookie的名称 //value cookie的值 //expires cookie存活的时间[可选项：无值代表页面关闭生命到期]，以毫秒为单位 支持 '1000' 1000 100*1000 三种格式（计算时不能用引号包含）[可以为其他目录进行赋值] //path cookie的可访问范围，例设置为&#34;/test/&#34;或&#34;text/&#34;或&#34;/text&#34; 都代表test目录下的所有文件及子目录都可访问到cookie //domain cookie的访问域，path的延伸，如设置为 &#34;senfe.com&#34; 那么&#34;bbs.senfe.com&#34;/&#34;www.senfe.com&#34;等二级子域名都可以访问到该cookie[只能为自己域赋值] //完整引用实例： //添加：setCookie('userName','qqqqqq',1000*60,'/test/','senfe.com') //读取：getCookie('userName') //删除：clearCookie('userName') if&#40; expires [...]]]></description>
			<content:encoded><![CDATA[
<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> setCookie<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #339933;">,</span> value<span style="color: #339933;">,</span> expires<span style="color: #339933;">,</span> path<span style="color: #339933;">,</span> domain<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//name cookie的名称</span>
	<span style="color: #006600; font-style: italic;">//value cookie的值</span>
	<span style="color: #006600; font-style: italic;">//expires cookie存活的时间[可选项：无值代表页面关闭生命到期]，以毫秒为单位 支持 '1000'  1000  100*1000 三种格式（计算时不能用引号包含）[可以为其他目录进行赋值]</span>
	<span style="color: #006600; font-style: italic;">//path cookie的可访问范围，例设置为&quot;/test/&quot;或&quot;text/&quot;或&quot;/text&quot; 都代表test目录下的所有文件及子目录都可访问到cookie</span>
	<span style="color: #006600; font-style: italic;">//domain cookie的访问域，path的延伸，如设置为 &quot;senfe.com&quot; 那么&quot;bbs.senfe.com&quot;/&quot;www.senfe.com&quot;等二级子域名都可以访问到该cookie[只能为自己域赋值]</span>
	<span style="color: #006600; font-style: italic;">//完整引用实例：</span>
	<span style="color: #006600; font-style: italic;">//添加：setCookie('userName','qqqqqq',1000*60,'/test/','senfe.com')</span>
	<span style="color: #006600; font-style: italic;">//读取：getCookie('userName')</span>
	<span style="color: #006600; font-style: italic;">//删除：clearCookie('userName')</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> expires <span style="color: #339933;">&amp;&amp;</span> isNaN<span style="color: #009900;">&#40;</span>expires<span style="color: #009900;">&#41;</span><span style="color: #339933;">===</span><span style="color: #003366; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>expires<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span>expires<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
	document.<span style="color: #660066;">cookie</span><span style="color: #339933;">=</span><span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;=&quot;</span><span style="color: #339933;">+</span>escape<span style="color: #009900;">&#40;</span>value<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>expires<span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #3366CC;">&quot;; expires=&quot;</span><span style="color: #339933;">+</span>expires.<span style="color: #660066;">toGMTString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>path<span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #3366CC;">&quot;; path=&quot;</span><span style="color: #339933;">+</span>path<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;; path=/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>domain<span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #3366CC;">&quot;;domain=&quot;</span><span style="color: #339933;">+</span>domain<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">function</span> getCookie<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> arr<span style="color: #339933;">=</span>document.<span style="color: #660066;">cookie</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> RegExp<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;(^| )&quot;</span><span style="color: #339933;">+</span><span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;=([^;]*)(;|$)&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>arr<span style="color: #339933;">!=</span><span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> unescape<span style="color: #009900;">&#40;</span> arr<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">function</span> clearCookie<span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #339933;">,</span> path<span style="color: #339933;">,</span> domain<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span> <span style="color: #000066;">name</span> <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		document.<span style="color: #660066;">cookie</span><span style="color: #339933;">=</span><span style="color: #000066;">name</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>path<span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #3366CC;">&quot;; path=&quot;</span><span style="color: #339933;">+</span>path<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;; path=/&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>domain<span style="color: #009900;">&#41;</span><span style="color: #339933;">?</span><span style="color: #3366CC;">&quot;; domain=&quot;</span><span style="color: #339933;">+</span>domain<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;;expires=Fri, 02-Jan-1970 00:00:00 GMT&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.senfe.com/archives/695.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

