some Nginx rewrite rules

客户要用DISCUZ作为交流论坛,从网上找了一个DISCUZ规则,发现不对,现发出正确的规则。

rewrite ^([^.]_)/topic-(.+).html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^.]_)/article-([0-9]+)-([0-9]+).html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^.]_)/forum-(w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
rewrite ^([^.]_)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
rewrite ^([^.]_)/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
rewrite ^([^.]_)/space-(username|uid)-(.+).html$ $1/home.php?mod=space&$2=$3 last;
rewrite ^([^.]_)/blog-([0-9]+)-([0-9]+).html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
rewrite ^([^.]_)/(fid|tid)-([0-9]+).html$ $1/index.php?action=$2&value=$3 last; if (!-e $request_filename) { return 404; }

继续阅读some Nginx rewrite rules

Nginx预防SQL注入的方法

Nginx作为一款轻量级的web服务器,以其高并发,高性能被多数IT公司采用作为替换apache服务器的首选程序。

前几天客户这边要求在Nginx端做SQL注入防护的措施,可按Nginx的功能来说,Nginx不具备应用防火墙的功能。现在只能求助于伟大的google了,好在发现了两种办法。第一种办法就是过滤url基本的注入关键字,达到初步的预防措施。第二种办法,使用数据库防火墙,目前的可选软件可以考虑GreenSQL,相当的便捷,它提供Windows,Debian,RH/CentOS安装包,包括32位和64位两种版本,其作为数据库防火墙,接受web端发起的所有数据库连接请求,过滤SQL,假如属于注入等其他非法请求,GreenSQL会返回一个空数据集,不会影响到前端WEB应用,我在一台测试服务器上安装使用了GreenSQL Express,从速度先说,还是很不错的,以Wordpress为例,打开页面没有感觉到慢,感觉不到数据库防火墙的存在。

第一种方法:(来自google)

error_page 519 /519.html;
if ($request_uri ~* "(cost()|(concat()") {
	return 519;
}
if ($request_uri ~* "[+|(%20)]union[+|(%20)]") {
	return 519;
}
if ($request_uri ~* "[+|(%20)]and[+|(%20)]") {
	return 519;
}
if ($request_uri ~* "[+|(%20)]select[+|(%20)]") {
	return 519;
}

继续阅读Nginx预防SQL注入的方法