And*_*min 13 javascript python cookies google-analytics web.py
在我发布给feedburner的Feed中,我在跟踪设置中的广告系列名称中包含俄语字符Feed: ${feedUri} ${feedName}.问题是,它会导致Google Analytics设置的__utmz Cookie不正确,并且我的后端(即web.py)无法处理.
File "/home/dw0rm/lib/ve/lib/python2.7/site-packages/web/session.py", line 96, in _load
self.session_id = web.cookies().get(cookie_name)
File "/home/dw0rm/lib/ve/lib/python2.7/site-packages/web/webapi.py", line 359, in cookies
cookie.load(ctx.env.get('HTTP_COOKIE', ''))
File "/usr/local/lib/python2.7/Cookie.py", line 627, in load
self.__ParseString(rawdata)
File "/usr/local/lib/python2.7/Cookie.py", line 660, in __ParseString
self.__set(K, rval, cval)
File "/usr/local/lib/python2.7/Cookie.py", line 580, in __set
M.set(key, real_value, coded_value)
File "/usr/local/lib/python2.7/Cookie.py", line 455, in set
raise CookieError("Illegal key value: %s" % key)
CookieError: Illegal key value: )|utmcmd
Run Code Online (Sandbox Code Playgroud)
在Firefox中发生此错误,我已设法使用此代码修复它:
def myinternalerror():
try:
web.cookies()
except CookieError:
if not "cookie_err" in web.input():
web.setcookie("__utmz", None, domain=web.ctx.host)
raise web.seeother(web.changequery(cookie_err=1))
return web.internalerror(render.site.e500())
app.internalerror = myinternalerror
Run Code Online (Sandbox Code Playgroud)
但今天我甚至在Chrome中获得了"cookie_err = 1"重定向.我在其他一些基于web.py和Analytics的网站上试过这个,它们都会引发内部服务器错误.并且此错误一直持续到非法cookie被删除,这对于常规访问者来说是一件困难的事情.
我想知道我应该考虑的其他选择.也许Python Cookie模块不正确,或者是浏览器的错误导致错误的cookie.这些东西可以用于恶意目的,因为有许多Python网站使用Google Analytics和Cookie模块.
这是跟踪查询: utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed%3A+cafenovru+%28%D0%9E%D0%BF%D0%B8%D1%81%D1%8C+%D1%82%D1%80%D0%B0%D0%BF%D0%B5%D0%B7%D0%BD%D1%8B%D1%85+%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%B3%D0%BE+%D0%9D%D0%BE%D0%B2%D0%B3%D0%BE%D1%80%D0%BE%D0%B4%D0%B0%29
__utmz cookie值不正确 37098290.1322168259.5.3.utmcsr=feedburner|utmccn=Feed:%20cafenovru%20(?????%20?????????%20????????%20?????????)|utmcmd=twitter
非法cookie由Analytics javascript在第一页访问时设置,服务器端错误出现在后续请求中.
我知道这可能不是你想要的答案,但这个bug的最佳解决方案是从ga.js升级到analytics.js.Analytics.js是Google Analytics网络跟踪库的最新版本,是通用分析的一部分.Analytics.js只写一个cookie,因此完全避免了这个问题.
这个bug的棘手问题是它已经存在了很长时间,许多GA用户已经有了解决方法.现在修复它会破坏很多这些网站,所以我认为谷歌不太可能对此采取任何措施,特别是因为analytics.js已经解决了这个问题,ga.js 很快就会被弃用.
再一次,我知道这不是您正在寻找的答案,但我只想重申,自己实施此问题的任何解决方法很可能会浪费大量时间.无论如何你都必须尽快升级,然后你的解决方法就没必要了.
以下是有关analytics.js如何使用Cookie的更多信息:https: //developers.google.com/analytics/devguides/collection/analyticsjs/domains
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |