Nginx 防SQL注入
SQL注入原理,在URI页面加参数查询数据库,假如程序没有严厉过滤字符串,就有或许导致SQL注入
咱们能够在前端Nginx过滤URI来避免SQL注入。装备如下
什么是URL和URI,举例说明:
衔接 http://www.abc.com/upload.php
URI: ?at=8
URL一般指?号前面的URL地址,URI指?号后边的参数
注: discuz需将show和update关键字撤销,不然无法登录,或获取验证码。
在 server {} 里参加以下内容:
if ($request_uri ~* (.*)(union%20| select%20|insert%20|delete%20|update%20|drop%20|show%20|truncate%20|alter%20|execute|'|;|%5c%2e)(.*)$) {
return 403;
}
curl 模仿拜访
# curl "http://www.test.com/index.php?select * from db.user"
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN" >
<html>
< head ><title>403 Forbidden< /title >< /head >
<body bgcolor= "white" >
<h1>403 Forbidden< /h1 >
<p>You don't have permission to access the URL on this server.</body >
< /html >
回来HTTP CODE 403