这个券的链接地址是:<a target="_blank" href="http://active.coupon.jd.com/ilink/couponActiveFront/front_index.action?key=8f4f0ad70a2840938a48a922f78200b9&roleId=80203&to=mall.360buy.com/index-19023.html"><img class="" width="150" height="93" alt="" src="http://img10.360buyimg.com/cms/g10/M00/0E/0B/rBEQWFFQDZUIAAAAAAAS5YbP-YgAACzVwKCDNkAABL9146.png"></a>
参数说明:
index-19023.html : 10023对应店铺id号
roleId=80203:对应活动的id号,如果修改他,能显示对应领券的页面,但是点击领券按钮后会显示:
key=8f4f0ad70a2840938a48a922f78200b9:可能是对应优惠券的id和活动的id编码成的,(待研究)
如果更改这个值,提交会提示和上面的结果一样,活动不存在
安全防护:
直接在领券页面点击网址会提示如下,而刷新则不会,这也是刷新和直接点击网址的区别,下面将区分,他这里是加了来路的判断,如果来路是同域的则正确,不是同域的则显示非法
加了安全防护有:
1、怎样强制用户点击链接才可以打开网页,如果把地址复制到地址栏不能打开网页?
通过判断Referer是否有,并且是同域的。
转于:http://blog.csdn.net/zoohouse/article/details/7552594
先来说“刷新”,它是在你现有页,而在地址栏回车则不会。
面的基础上,检查网页是否有更新的内容。在检查时,会保留之前的一些变量的值,因此有
可能会造成刷新后网页出现错误,或者打不开的情况;“转到”和在地址栏回车,则相当于
你重新输入网页的URL访问,这种情况下,浏览器会尽量使用已经存在于本机中的缓存。
也就是说,“刷新” 是取网页的新内容来更新本机缓存,在更新的同时保留之前的一些变
量;“转到”则是一种全新的访问,它会尽量使用本机缓存中的文件,但不会保留之前的变量,这下应该明白了吧?另外,按着Ctrl,还可以进行强制刷新,跟转到的作用差不多。
不少同学问,不都是刷新吗?还有什么区别?其实,还是有的。
其中,在地址栏按回车又分为两种情况。一是请求的URI在浏览器缓存中未过期,此时,使用Firefox的firebug插件在浏览器里显示的HTTP请求消息头如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0)
Gecko/20100101 Firefox/5.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
HTTP 返回状态显示200 OK,但是,后台Nginx服务器的access.log并没有找到该请求的记录,说明请求并没有真正提交到HTTP服务器。而是被浏览器发现缓存中还有 未过期的文件,直接把请求拦截了,firebug里面显示所谓的“请求头消息”、“响应头消息”都是浏览器“伪造”的。这种刷新,使用的网络流量是最小 的,可以说完全没有,时间消耗也是最少的。就像你找到一盒没有过期的牛奶,觉得肯定没有问题,谁都没告诉就喝了。
二是请求的URI在浏览器缓存中已过期,此时,firebug显示的HTTP请求消息头如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0)
Gecko/20100101 Firefox/5.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
If-Modified-Since Mon, 04 Jul 2011 10:12:40 GMT
多 了一行If-Modified-Since,后台Nginx服务器的access.log也找到了该请求的记录,说明浏览器对这种情况的处理方法是:再 问一下服务器,请求的URI在某个时间之后有没有被修改过,而这个时间是由上次HTTP响应的Last-Modified决定的。服务器鉴定之后,没有修 改的话,返回304 Not
Modified,浏览器收到后,从缓存里读出内容;有修改的话,返回200 OK,并返回新的内容。这种情况,就像你找到一盒已经过期的牛奶,于是问别人,还能不能喝,如果别人说可以,你就把它喝了,如果别人说不行,那你得就另外找一盒新鲜的牛奶。
至于F5刷新,其HTTP请求消息头如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0)
Gecko/20100101 Firefox/5.0
Accept
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
If-Modified-Since Mon, 04 Jul 2011 10:12:40 GMT
Cache-Control max-age=0
又多了一行Cache-Control:
max-age=0,意思是说,我不管浏览器缓存中的文件过期没有,都去服务器询问一下,相当于上次HTTP响应的Expires暂时失效。服务器的响应 处理流程同上。这种情况,就像你找到一盒牛奶,没有看它的有效期,直接就问别人能不能喝。
最后是Ctrl+F5刷新,其HTTP请求消息头如下:
Host 192.168.3.174:8080
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:5.0)
Gecko/20100101 Firefox/5.0
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language zh-cn,zh;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset GB2312,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Pragma no-cache
Cache-Control no-cache
If- Modified-Since没有了,Cache-Control换成了no-cache,此外Pragma行是为了兼容HTTP1.0,作用与
Cache-Control: no-cache是一样的。意思是,我不要缓存中的文件了,强制刷新,直接到服务器上重新下载,于是服务器的响应处理与首次请求这个URI一样,返回 200 OK和新的内容。这种刷新,使用的网络流量是最大的,也是最耗时的。这就像你虽然发现了一盒牛奶,但是把它扔掉了,直接去买一盒新的。
总结:f5刷新,shift+f5刷新都会保留之前的一些请求头信息,如referer,而直接输入网址点击则没有了referer
1:站内点击过来:
2.按f5刷新点击过来的页面
相比多了个Cache-Control,referer都相同
3.按shift+f5刷新
与f5刷新相比多了个Pragma no-cache,保证不用缓冲中的内容,referer都相同
4.在网址栏输入点击过来的网址,按回车
没有了缓冲的使用,没有了referer