通过 Ajax 实现 网站劫持的检测

最近有访客反映 第一次访问 本博客 时,存在一个抽奖的链接,在次访问恢复正常。初步判断,估计又是运行上搞的鬼,自己都不舍得挂广告,竟然别人挂了。。。。

https可以彻底解决劫持的问题。但是一般虚拟主机都不支持 https,难道http只能任流氓们恶意劫持么?

既然只有第一次访问时才会出现抽奖链接,通过JS在浏览器中检测,如果发现 被植入的 代码,则自动刷新网页,就可以解决被劫持的问题了。

现在要做的就是得到 被植入的代码。找了一圈,没有找到检查的工具。网站传输到客户的浏览器,需要三个步骤:【1】服务器 -> 【2】运行商 -> 【3】客户浏览器。

劫持出现在第【2】步,因为离开了服务器,已经不受控制了。但是第【3】部的浏览器可以通过JS来控制。通过 Ajax 上传 客户最终获取到的代码,就可以对进行分析了。
继续阅读

NW.js初体验 – 实现本博客的客户端

最新发现了个神器,NW.js(http://nwjs.io),可以使用 html 开发桌面版APP,使用了webkit内核。没猜错,因为是webkit,它当然是跨平台的。

可能有人会喷这有什么卵用,如果集成了nodejs的环境呢,试想一下,它支持上万种npm库,这个他已经实现了。

又有人来喷这么牛X,怎么没见人用呢?那是因为你没有关注而已,PC版本微信、微信web开发者工具 都是使用它开发的。

有优点也有缺点,缺点就是 体积太过于庞大,随便写个hello world都近百兆。

查阅他的资料,不到几分钟,就完成了一个小程序 – 本博客的PC客户端。源码已经打包成 zip文件(www.miaoqiyuan.cn/products/nwjs-blog.zip),使用时 先下载 nw-js后,使用 nw nwjsapp.zip 即可启动。 继续阅读

thinkphp5 instance 的简单实现

最近学习 ThinkPHP5,第一次看到 TestClass::instance() 就能创建 TestClass 实例的方法。感到很好奇,翻阅 ThinkPHP 的源代码,大体理解了 它的 设计思想,非常的先进。

再次从零造车一次(昨天的造车:angularjs的数组传参方式的简单实现http://www.miaoqiyuan.cn/p/angularjs-array-arguments),来讲讲 他的 具体实现。本文(thinkphp5 instance 的简单实现)为原创文章,原文地址:http://www.miaoqiyuan.cn/p/php-class-instance,转载请注明出处。
继续阅读

angularjs的数组传参方式的简单实现

初学 angularjs时,对 数组传参方式感到很好奇([‘a’, ‘b’, function(a,b){}]),它到底怎么实现的呢?后来由于工作很忙,对这个问题也就慢慢忘记了。

今天闲来无事,有想到了这个问题。最简单的方法就是查看他的源代码。无奈本人E文不好,不说看他的设计逻辑,仅看英文注释就够我头疼了。尝试闭门造车,最终竟然把车造出来了。

既然自己造的车,就要带上自己的名(取姓名拼音第一个字母),就叫他mqyJs把,下面是演示的调用方法:

var app2 = mqyJs.applicationCreate([{ name: '直接传入SCOPE' }, '$hello', '$world', function($scope, $hello, $world) {
    return $scope.name + ": " + $hello.name + $world.name;
}]);

核心部分如下: 继续阅读

mysql使用localhost,竟然会导致程序变慢

好久没有更新博客了:),之前写的 ThinkPHP的权限管理 thinkAuthorization(地址:http://git.oschina.net/mqycn/thinkAuthorization 最近会支持 ThinkPHP5.0),预计本周末会发布

最近的一个项目使用 ThinkPHP5.0 框架,为了省事,直接用全宇宙最强大的 phpStudy 做开发环境。调试时,每次脚本执行时间都超过一秒,查看日志,发现 数据库 Connect 时竟然使用了超过1秒的时间。

最初怀疑是 TP5 框架的问题,改用原生方式(mysql_connect)连接 数据库,竟然也存在问题。数据库地址 使用的 localhost,改用 127.0.0.1 后,解决。 继续阅读