制作一个gzip炸弹来保护你的网站

看到访问日志里面总有脚本小子扫管理页面,不如丢个炸弹上去玩玩。 生成一个gzip炸弹 dd if=/dev/zero bs=1M count=1024 | gzip > bomb.gzip 修改nginx地址重写 location ~ /wp-admin { if (!-e $request_filename) { rewrite ^/.* /path/to/bomb.gzip; } include fastcgi-php.conf; } location ~ 1g\.bomb\.gzip { default_t...

禁用MacOS自带PHP环境 使用brew安装的PHP环境

今天在配置环境时被自带的PHP环境坑了,一直报错然后看了下PHP版本居然是5.6,which php-fpm后发现在/usr/sbin下,这是MacOS自带的PHP环境,而我的PHP是通过brew安装的,位于/usr/local/sbin下。 于是我想到的是先卸载自带的PHP 5.6,然而MacOS 10.12下/usr/sbin属于被保护的目录,禁止修改,而且修改后下次系统更新又会装回来。 所以最好的方法是修改环境变量PATH的加载顺序,提前/usr/local/sbin。 具体操作如下 sudo vim /etc/paths 将 /usr/local/sbin 调整到 /usr/sb...

浮点数快速取整算法 - 解读LUA中number2int函数源码

最近在看LUA源码时注意到这么一段有趣的代码。 /* @@ lua_number2int is a macro to convert lua_Number to int. @@ lua_number2integer is a macro to convert lua_Number to lua_Integer. ** CHANGE them if you know a faster way to convert a lua_Number to ** int (with any rounding method and without throwing errors) in your ** ...

A*算法

Dijkstra就是A*的一个特例 先占坑 这周写 概述 A*算法是一种深度优先遍历,是Dijkstra算法的一种优化算法。该算法从一个指定的点开始创建一棵树,每步延伸一次这棵树的节点,直到这棵树的某一条路径抵达重点。在每一步操作时,A*算法需要决定它的哪一个部分子路径需要进行延伸 其他 由于A*算法判断不能到达的方式是穷举掉所有的路径,所以在游戏寻路算法中,通常不能到达的点计算量会非常大。所以在实际使用时,通常把不能互相到达的点提前标记好,寻路算法在计算前先判断两个点之间是否可以连通。

哈夫曼编码

毕业多年发现写业务写废了,需要重新捡回算法。 概念 哈夫曼编码是利用哈夫曼树生成的编码方式,其特点是编码长度最短,常用于数据压缩。哈夫曼树是带权路径总长度最小的树,又称为最优二叉树,所谓最优二叉树是指所有叶子节点的带权路径和最小的树。树中一个节点的带权路径就是该点的权值乘以其到根节点的距离。 即: WPL = W1 * L1 + W2 * L2 + ... + Wn * Ln 生成 从节点集合S中取出权值最小的两个节点a,b作为左右子节点建立二叉树T,并从S中删除a,b 将二叉树T的根节点重新加入集合S,其权值为a,b权值相加 重复前两步操作直至集合S为空,此时得到的二叉树即为...

C++构造函数与析构函数的一些特殊用法

最近提及C++的构造函数与析构函数的一些特性引发了一些思考,不如写篇文章记录下过程。 关键字: C++,构造函数,析构函数,虚函数,纯虚函数,私有函数 构造函数是否可以是私有函数 之前单纯从理论上思考,一个类实例化必然要通过构造函数来产生实例,所以一个类的构造函数如果是私有的,将无法从外部实例化。至此思路都是没有问题的,但是发现自己忘记了一种情况:类的static公有函数可以在没有实例化时即可使用,它自然也能访问到类的私有成员。 所以,类的构造函数可以是私有的,可以通过static静态函数来创建实例。基于这个思路,我们可以在该静态函数中增加一些操作来管理该类的实例化。例如,我们可以通...

最新文章

最近回复