|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。cookie|办理|成绩 Cookie跨域操纵看来是个复杂的成绩,由于只需指定Domain属性为指定网站的根域名就能够了.可是笔者在实践利用过程当中却碰到了一些成绩,切实其实值得注重.
情况先容
cookie在www主域名下创立,并写进Domain属性,如:(为便利调试以下代码皆为asp代码)
Write.asp
<%
Response.Cookies(CookieName)("UserName")="SunBird"
Response.Cookies(CookieName)("Password")="xyz1234"
Response.Cookies(CookieName).Domain="xxxx.com"
%>
下面文件放在www主域名下,同时在同目次下安排一个读取cookie的Read.asp
Read.asp
<%
Response.WriteRequest.Cookies(CookieName)("UserName")
Response.WriteRequest.Cookies(CookieName)("Password")
%>
再放一个Read.asp文件到别的一个子域名站点里,代码同上。最初我们再做一个扫除cookie的Clear.asp放在主域名下
Clear.asp
<%
Response.Cookies(CookieName)("UserName")=""
Response.Cookies(CookieName)("Password")=""
Response.Cookies(CookieName).Domain="xxxx.com"
%>
如今能够经由过程上面的实行按次来测试,Write.asp-->主域名的Read.asp-->子域名的Read.asp一切Read.asp页面都能够读取到Write.asp创立的cookie的值,然后再运转Clear.asp举行扫除,统统都Ok,看上往没有甚么成绩。
可是把这类办法使用到实践的站点时却呈现成绩了。
成绩形貌:
第一次登录统统ok,一切子域名都能够会见到主域名存储的cookie,可是,一旦加入以后,子域名的cookie被扫除了,可是主域名的cookie仍旧保存着,强行扫除主域名的cookie以后,不管如何登录主域名下都没法保留cookie了,除非关失落扫瞄重视新翻开。
经由屡次实验以后,偶然中发明成绩地点,以下是测试经由。
创立一个Write2.asp的页面放在主域名下
<%
Response.Cookies(CookieName)("TEST_COOKIE")="TEST_COOKIE"
%>
第一步:封闭扫瞄器后,按以下按次实行,Write.asp-->主域名的Read.asp-->子域名的Read.asp到这里一切Read.asp读取一般。
第二步:Clear.asp-->主域名的Read.asp-->子域名的Read.asp到这里扫除操纵是乐成的。
第三步:Write.asp-->Write2.asp-->主域名Read.asp-->子域名Read.asp到这里两个Read.asp都能够读取到cookie的值。
第四步:从头实行第二步,发明主域名Read.asp仍旧输入了值,而子域名下的Read.asp的值已被清空了。
依据以上测试总结以下几点再跨域利用cookie时必要注重的中央
1、当你有一个Cookie组(或叫Cookie字典)利用Domain属性指定域名以后,当你在对该组的成员举行修正或新增的时分,必定要在操纵以后加上Resonse.Cookies(CookieName).Domain属性。
2、假如没有需要,请不要修正已设置Domain的Cookie组,间接利用Response.Cookies("CookieText")=CookieValue来创立一个新的Cookie。
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了! |
|