电脑安全

您当前的位置:主页 > 电脑安全 >

实现跨域名Cookie-网络编程

来源:[db:来源]标题:   域名    编辑:电脑技术全能网 时间:2019-09-23 06:24

原标题:实现跨域名Cookie-网络编程
   Cookie真是一个巨大的发现,它许可web开辟者保存他们的用户的登录状况。但是,当你的站点或收集有一个以上的域名时就会呈现成绩了。  在Cookie标准上说,一个cookie只能用于一个域名,不可能发给别的的域名。因而,如果在扫瞄器中对一个域名设置了一个cookie,这个cookie关于别的的域名将有效。如果你想让你的用户从你的站点中的此中一个停止登录,同时也能够在别的域名长进行登录,这可真是一个浩劫题。  我的处理计划将应用上面的个别框架:一个预置的剧本将用来接收经过GET或COOKIE方法通报过去的sessionid号。它将比COOKIE优先抉择GET变量。以是,不管何时须要援用穿插的域名时,咱们把sessionid做为一个URL参数停止发送。修正Apache设置,用来完成重写全部的穿插域名的cookie。如许做的起因一会儿就会清晰了。在任何时间呈现一个穿插域名援用时应用变量。第一步:创立预置剧本  将上面的代码加到预置剧本中(或呈现在全部剧本之前的函数中)。<?php/* 支撑穿插域名cookie... */// 如果GET变量曾经设置了,而且它与cookie变量差别//则应用get变量(更新cookie)global $HTTP_COOKIE_VARS, $HTTP_GET_VARS;if (isset($sessionid) && isset($HTTP_GET_VARS['sessionid']) && ($HTTP_COOKIE_VARS['sessionid'] != $HTTP_GET_VARS['sessionid'])) {SetCookie('sessionid', $HTTP_GET_VARS['sessionid'], 0, '/', '');$HTTP_COOKIE_VARS['sessionid'] = $HTTP_GET_VARS['sessionid'];$sessionid = $HTTP_GET_VARS['sessionid'];}?>  一旦这个代码运转以后,一个全局的'sessionid'变量将能够用于剧本。它将保留着用户的cookie中的sessionid值,或许是经过GET恳求发来的sessionid值。第二步:为全部的穿插域名援用应用变量  创立一个全局的设置文件,用于寄存能够停止切换的域名的基础援用情势。比方,如果咱们领有domain1.com和domain2.com,则以下设置:<?php$domains['domain1'] = "http://www.domain1.com/-$sessionid-";$domains['domain2'] = "http://www.domain2.com/-$sessionid-";?>  当初,如果在代码中以下做:<?phpecho "Click &lt;a href="", $domains['domain2'], "/contact/?email=yes"&gt;here&lt;/a&gt; to contact us.";?>