在公司,我们碰到的很大一部分问题都是NullPointerException。我常常就想:这段程序明明在我电脑运行好好的,为什么会出现这种情况呢?
因为,我们永远都无法预测用户使用时会发生的各种情况。所以防御性编程可以让我们减少很大一部分错误。
nginx安全配置之白名单设置
网站安全,防不胜防
你永远不知道黑客利用什么漏洞对你的网站进行攻击,最常见的手段是利用漏洞在你的网站留个后门,喜欢的时候来逛逛,比如玩你的服务器上传一个x.php,直接访问:
1 | http://www.example.com/a/b/c/d/a.php |
然后就可以为所欲为了,那么有没有办法让黑客即使利用漏洞上传了php代码而没办法运行呢?答案是肯定的。
思路是从运行php的php-fpm着手,在nginx上做配置,客官请看配置。
修改配置nginx限制恶意爬虫频率
超过设置的限定频率,就会给spider
一个503
。
上述配置详细解释请自行google
下,具体的spider/bot
名称请自定义。
利用反向代理批量实现https协议访问
最近有一个项目需求,需要为站点增加https访问。
开始只配置了www域名下的https,发现css和js都无法正常加载,原因是https页面,如果加载http协议的内容,会被认为页面不安全,尤其是IE,刷新一下页面就要弹出一次确认,相当烦人。
后来苦逼的把各个子域名都加入了https配置,nginx.conf里写各个子域名都写了一个443的server配置,每新增一个域名,还得copy一份,如果是修改一下站点的配置,还得改两次以上。
nginx服务器防sql注入/溢出攻击/spam及禁User-agents
废话不说,直接上配置,客官请看
未知的恐惧——NULL
1 | SELECT |
如果这是一道面试题,估计不知道有多少程序员甚至是DBA会阵亡。
Linux下查看nginx,apache,mysql,php的编译参数
在升级软件版本的时候,如果没有文档,那是相当痛苦的事情,编译参数是什么?
内网机器的获取公网IP的方法
1 | function getClientIp(){ |
缺点:依赖第三方,效率与网络状况有关。
Nginx upstream的5种权重分配方式
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
preg_match正则匹配的字符串长度问题
项目中,用preg_match
正则提取目标内容,死活有问题,代码测得死去活来。
后来发现pcre.backtrack_limit
的值默认只设了100000
。