五维工作室

这里是你们可以实现梦想的地方

分类 技术随笔 下的文章

cookie 污染问题的解决(二)

第三方登录比如:qq登录、新浪微博登录 调用网站回调函数的时候
$_SESSION 数据会失效,把需要访问的数据放在cookie里就可以了

1.腾讯云的负载均衡会话保持的本质是增加一个额外的负载均衡的session,并把
负载均衡的sessionid保存浏览器,但是会造成所有走负载均衡的静态资源全部都加上cookie tgw_l7_route,
而且最好也别用腾讯云的负载均衡iphash,存在bug,会导致很多地方的ip都无法访问腾讯云服务器
tool.chinaz.com/speedtest 访问 https://www.tipsns.com 国内大部分地方无法访问网站

2.针对百度统计污染cookie,最好是让网站启用新的一级域名,然后
目前 www.tipsns.com 已经在安装百度统计的情况下实现了静态资源的cookie-free

阅读全文

完美解决gif只播放一次的问题,完美解决gif空白问题

有一些浏览器 比如360极速浏览器,gif在上面只能播放一次,然后gif图片就会变成一片空白
这里首先需要判断一下浏览器的类型:

$.browser.webkit = /webkit/i.test(navigator.userAgent.toLowerCase());
function isB360(option, value) {
var mimeTypes = navigator.mimeTypes;
for (var mt in mimeTypes) {
  if (mimeTypes[mt][option] == value) {
    return true;
  }
}
return false;
}
$.browser.b360 = isB360("type", "application/vnd.chromium.remoting-viewer");

这里我使用的是rebox 插件,找得到对应的 img获取位置,通过 重置 img的src 为原src加上一个
随机数,可以重新加载gif图片,就可以重新播放了,但是也有缺点,就是 gif不能使用浏览器缓存

if(/(.gif)$/i.test($img[0].src) && $.browser.b360 && $.browser.webkit) {
    $img[0].src = ($img[0].src.split('?'))[0] + '?' + Math.random();
}

具体效果见:www.tipsns.com/read/23.html
gif只播放一次.png

其他的方法比如click点击获取到图片的dom对象之后,修改src刷新图片,效果也是一样的。

阅读全文

cookie 污染问题的解决(一)

我的网站曾经配置过cookie-free,也就是 所有静态资源都不会带有cookie,配置的方法就是用独立的域名

location ~ .*\.(js|css|eot|svg|ttf|woff|woff2|gif|jpg|jpeg|png|ico|bmp|swf|flv|mid|mp4|mp3)$
{
    #expires 1d1h1m1s;#缓存日、小时、分钟、秒 expires max;
    expires 30d;
    add_header Access-Control-Allow-Origin *;
    add_header Pragma public;
    add_header Cache-Control "public, must-revalidate, proxy-revalidate";
    access_log off;
    log_not_found off;
    tcp_nodelay off;
    break;
}

但是今天访问网站首页 www.tipsns.com,发现网站所有的 静态类型资源 全部都加了几个奇奇怪怪的cookie,这种
情况去百度了下,应该是 一些第三方 js导致的 cookie污染

1.有一个cookie叫tgw_l7_route,遍查资料找不到来源,最后发现 tgw就是 tecent gate way的意思,不就是腾讯云的
负载均衡网关么?原来是它,这里 我改为 iphash 的负载均衡方式,问题解决

腾讯云负载均衡cookie污染1.png

2.还有一些cookie是 Hm_ 开头的,是百度的cookie,会导致所有子域名下的cookie被污染,所有的静态资源都会带有百度cookie,像一些大站都有独立域名做 cdn,目前只能放弃 百度统计了!

阅读全文