Javascript Javscriptencode用于谷歌分析的Url路径
我尝试将参数trackPageview传递给Google Analytics 我现在用Javascript Javscriptencode用于谷歌分析的Url路径,javascript,asp.net-mvc,google-analytics,xss,Javascript,Asp.net Mvc,Google Analytics,Xss,我尝试将参数trackPageview传递给Google Analytics 我现在用 _gaq.push(['_trackPageview', <%=AntiXss.JavaScriptEncode(Url.RequestContext.HttpContext.Request.Path ) %> ]) 我应该如何处理正斜杠?在Google Analytics中“\x2”显示是否正常?还是将\x2替换为正斜杠保存 _gaq.push(['_trackPageview', <%
_gaq.push(['_trackPageview', <%=AntiXss.JavaScriptEncode(Url.RequestContext.HttpContext.Request.Path ) %> ])
我应该如何处理正斜杠?在Google Analytics中“\x2”显示是否正常?还是将\x2替换为正斜杠保存
_gaq.push(['_trackPageview', <%=AntiXss.JavaScriptEncode(Url.RequestContext.HttpContext.Request.Path).Replace("\x2","/") %> ])
\u gaq.push([''u trackPageview',])
编辑:
我不能使用
\u gaq.push([''u trackPageview'])
不带path参数,因为原始路径包含我不想跟踪的语言(/de/home/index需要作为/home/index进行跟踪)您实际上不需要\u trackPageview
的第二个参数。默认情况下,它将记录当前url(包括查询参数)。任何给定页面上的url都是从document.location
中组合/获取的
其他解决办法:
- 您刚才提到的
解决方案实际上已经足够好了replace
- 将\x2f留在路径中,它不会伤害眼睛/大脑以外的任何东西李>
- 您是否可以在纯javascript中使用
或document.location
?我猜URL的查询或散列部分是XSS攻击唯一需要担心的问题document.location.pathname
- 转义路径,而不是通过将其包装为字符串和转义引号对其进行编码。你也可以去掉任何引号
- 不要对路径进行编码,它很可能很好(除非它未经过消毒,并且来自您的用户数据);而只是对查询和散列进行编码
- 我倾向于使用JavaScript解决方案。尝试切片数组以删除语言前缀,并加入以合并路径:
pathnameArray = document.location.pathname.split('/').slice(2);
_gaq.push(['_trackPageview'], '/' + pathnameArray.join('/'));
不传递参数路径是一个很好的解决方案。但我必须摆弄它(见我的编辑)。是的,我认为摆弄是不可能的。然而,它只是使用javascript的build document.location函数。你应该打开chrome的控制台,把它弄得一团糟。或者,使用服务器端代码也不错。然而,它确实迫使你将谷歌分析留在你的html页面上。
pathnameArray = document.location.pathname.split('/').slice(2);
_gaq.push(['_trackPageview'], '/' + pathnameArray.join('/'));