我有一个简短的url脚本并且已经测试了执行重定向的各种方法...一种方法包括将访问者重定向到一个小的JS片段,然后将它们转发到所需的网页。然而卡巴斯基病毒扫描程序正在将其作为木马HEUR:Trojan-Downloader.Script.Generic,它说“下载已被阻止”。
我在第三方网站上看到过这种方法,但效果很好。
我很困惑,为什么说下载在下载时被阻止了。标头设置为text/html;charset=UTF-8
<script>
var u='http:\/\/domain.co.uk\/r\/short&sc=1';
var l='loca' + 'tion'
window[l].replace(u);
</script>
为什么这个JS会引发病毒警告?有没有办法阻止它?
答案 0 :(得分:7)
因为你把它写成看起来像病毒。
对这样的目标和属性访问进行模糊处理是完全没有必要的,通常由恶意软件完成,以使阅读和注意恶意更加困难。
只需使用window.location.href = 'http://domain.co.uk/r/short&sc=1';
,您应该处于更好的位置。
模糊这一点没有任何好处,因为用户无论如何都会知道他们被重定向到哪里。您不需要为location
属性使用字符串访问器(btw,is actually read-only)或转义正斜杠。
如果您要将用户重定向到此脚本,它实际上无法正常工作,因为您需要一个页面包装它。您可以通过将重定向替换为直接重定向到目的地(明智且相当简单)或调用代码段的函数来解决这个问题:
<button onclick="redirect();">Forward Me!</button>
function redirect() {
window.location.href = 'http://domain.co.uk/r/short&sc=1';
}
您还可以在Apache或Nginx配置中使用某种服务器端重定向,这样可以很好地处理点击跟踪和负载平衡。