文档章节

nginx + lua 防止扫描攻击

莲花子
 莲花子
发布于 2017/06/17 08:41
字数 99
阅读 118
收藏 0

用于非法扫描漏洞的程序,根据用户返回代码,灵活设计,有效防御。

       lua_shared_dict dogs 10m;
        init_by_lua_block{
                dogs=ngx.shared.dogs
        }
 

                rewrite_by_lua_block
                {
                        local function deny_scan()
                                                ngx.ctx.check_ip=ngx.md5(ngx.var.host..ngx.var.binary_remote_addr..ngx.var.http_User_Agent)
                                if  dogs:get(ngx.ctx.check_ip) == nil then
                                        dogs:set(ngx.ctx.check_ip,0,60) --默认60秒可以加大
                                elseif dogs:get(ngx.ctx.check_ip) >10 then --允许10次
                                        dogs:flush_expired()
                                        ngx.exit(503)
                                end
                        end

                }


 

log_by_lua_block
{
if (dogs:get(ngx.ctx.check_ip) <11) and  ngx.status == 403  then
   dogs:incr(ngx.ctx.check_ip,1)
end
}
 

© 著作权归作者所有

共有 人打赏支持
莲花子
粉丝 1
博文 13
码字总数 4521
作品 0
渝中
系统管理员
私信 提问
软WAF的另一种思路:基于Openresty+Naxsi的WAF实现

  * 本文作者:erwinlic,本文属FreeBuf原创奖励计划,未经许可禁止转载   0×00 WAF概要   目前软WAF的开发,大部分都采用Nginx+Lua基于openresty的方式,安全防护策略如果是基于lua...

FreeBuf
2018/05/10
0
0
Nginx Lua WAF通用绕过方法

  1.前言   2018年4月3日@ bre4k在群里发了一个trick。      Nginx Lua获取参数时,默认获取前100个参数值,其余的将被丢弃。      所以,用了Nginx Lua的WAF默认都会被Bypass。...

FreeBuf
2018/05/15
0
0
nginx_lua_waf安装测试

ngxluawaf是一个基于lua-nginx-module(openresty)的web应用防火墙,对于中小企业或不愿购置硬件防火墙的企业的首选,能有效保证网站的安全性。 源码:https://github.com/loveshell/ngxlua_w...

Tar0
2017/11/09
0
0
0ldm0s/VeryNginx

VeryNginx VeryNginx is a very powerful and friendly nginx . ##版权说明 这个软件的原作者并不是我。我只是去除了openrestry包的依赖,并且可以直接自动化安装而已。 目前测试通过的版本是...

0ldm0s
2016/02/11
0
0
Nginx 插件--ngx_lua_anticc

ngxluaanticc 是一款能够防御CC(HTTP Request Flood)攻击的Nginx插件,基于 ngxlua 实现。ngxluaanticc 可以有效抵御 TOP 10 CC攻击工具的攻击,防御效果明显。主要功能有: 针对静态资源和...

leeyiw
2015/02/26
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
3
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部