首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Nginx - 集成ModSecurity实现WAF功能

作为一个嵌入式模块,ModSecurity可以集成到常见Web服务器(如Apache、Nginx),以拦截阻止恶意HTTP请求。...规则匹配: ModSecurity使用预定义规则集(或自定义规则)来匹配请求恶意模式。这些规则可以检测到常见Web攻击模式。...实时监控日志记录:ModSecurity可以记录每个HTTP事务详细信息,包括请求头、响应头、请求体、响应体等,帮助管理员诊断分析潜在安全问题。...ModSecurity是一款强大而灵活Web应用防火墙,能够帮助管理员保护Web应用免受各种类型攻击。通过合理配置规则定制,可以有效地提高Web应用安全性,并降低遭受攻击风险。...ModSecurityNginx应用 ModSecurity是一款开源Web应用防火墙(WAF),用于保护Web应用免受各种攻击。

61900

ModSecurity:一款优秀开源WAF

作为WAF产品,ModSecurity专门关注HTTP流量,当发出HTTP请求时,ModSecurity检查请求所有部分,如果请求是恶意,它会被阻止记录。...,如果配置包含这些规则,则会被忽略,nginxsub_filter指令可以用来检查状语从句:重写响应数据,OWASP相关规则是95X。...testparam=test #则返回"403 Forbidden",说明前面配置那条modsecuriy规则生效了,并阻拦了testparam参数带test请求 /var/log/nginx...主配置文件include CRS配置规则 vim /etc/nginx/modsec/main.conf Include the recommended configuration Include...requests: 0 error(s) and 83 item(s) reported on remote host #扫描出83个问题,比308个少了很多 安装ModSecurity时,我们将演示应用程序配置为为每个请求返回状态代码

2.9K21
您找到你想要的搜索结果了吗?
是的
没有找到

ModSecurity 开源WAF简介

HTTP流量记录 web服务器已有的日志功能已经足够进行访问请求分析,但是就web应用分析还有些不足,特别是大多情况下没办法记录下请求体。...攻击防御及时修补 ModSecurity能够立即针对你WEB应用系统进行攻击防御,有三种通用方法: 1、消极(negative)安全模型:消极安全模型监控那些异常、不常用通用WEB攻击类请求...它统计每个请求有关IP地址、应该连接、用户帐户异常分数,当出现较高异常分数时,会记录日志并完全阻止访问。...经过认证ModSecurity规则,放在ModSecurity,包含了一整套规则,它实现了通用目的强化、协议正规化对一些通用web应用安全问题检测。...注意在这个阶段,你应当小心不要继承破坏性动作到规则,这样情况ModSecurity2.5.0及其以后版本中被当作配置错误。

5K20

centos7环境下ModSecurity-envoy编译测试(二)-野路子技术宅

@@ ~~ ^ ^ &&相信光,相信相信力量.技术是安身立命之本,实践出真知,熟能生巧,佐以业务能力,遇上风口之时,可逆天改命!本文同步发布作者个人博客,欢迎转载。...本章目标:完成modsecurity-envoy本地centos7环境下配置拦截测试---------------------------------------本地虚拟机134环境测试配置IPS...:由于每次请求都会匹配所有规则,因此高并发情况下,效率相对较低,服务器资源占用较高,但误报率相对较低; 当检测到威胁时,并不会直接阻断此次请求,而是向下继续进行规则匹配,每个匹配成功规则都会增加...”异常分数”,在对请求数据检测结束时,以及对返回数据检测结束时,都会对异常分数总和进行判断,如果大于设置阈值,才会进行阻断动作,并向客户端返回403代码,审计日志也会记录此次访问中所有匹配成功规则信息...独自控制模式:检测到一次威胁就直接阻断请求,因此高并发情况下,效率相对较高,服务器资源占用较小,但误报率相对较高。

1.8K30

ubuntu上安装Apache2+ModSecurity及自定义WAF规则

小编注:本文作者系FreeBuf专栏作者 @碳机体 美眉,目前她研究方向主攻云防火墙。对文章内容有不清楚可以直接评论区留言,注意秩序素质。.../ 将我们想起用规则集放置以下目录下 cd /usr/share/modsecurity-crs/activated_rules/ 选择启用base规则集 for f in $(ls ...../base_rules/$f; done 你可以采用同样办法启用其他规则集,注意不同规则集可能需要启用特定模块 修改apache模块配置,启用规则集 注意:modsecurity 2.7版本与2.6...2: 上传文件名包含%00进行阻断 vim /usr/share/modsecurity-crs/activated_rules/MY.conf 添加规则 SecRule FILES "@contains...http www.tanjiti.com filename@a.php%00.jpeg 我们可以看到请求包被拦截,查看modsecurity日志 more /var/log/apache2/modsec_audit.log

1.5K80

ModSecurity安装了,不懂原理规则?这篇帮你搞定

但是,仍然有可能有人利用超大请求体限制发送大量大小非上传请求。该指令消除这一漏洞。...记住一点,如果使用了这个参数,那么返回状态码是200 成功攻击事件不会记录。 SecAuditLogParts ABIJDEFHZ #定义每个事务记录到审计日志部分。默认:ABCFHZ. ?...SecAuditLog /var/log/modsec_audit.log #审计日志路径 SecArgumentSeparator & #指定字符作为application/x-www-form-urlencoded...这个指令用于后台WEB应用在使用非标准参数分隔符,如果没有每一个WEB应用合理设置这个指令, 那么ModSecurity可能无法适当分析所有的参数,并且规则匹配效果可能会显著降低。...上面的内容解释已经很详细了,需要再详细说明一个地方(重点来了),就是上面提到规则定义阶段,就是规则中看到phase部分 ModSecurity是有分五个阶段,这五个阶段,基本就是从一个web

3.6K30

Apache下ModSecurity安装启用与配置

如果提示没有这个软件包就更新一下软件包 apt-get install update 这步安装好了以后apache就可以提供服务了,输入127.0.0.1就可以访问本地网站了 第二步:安装modsecurity 这个也上边一样...,会在/var/log/apache2/目录下生成modsecurity日志文件modsec_audit.log 使用modsecurity核心规则集 将我们想起用规则集放置以下目录下 cd /...对于网站结构比较了解站长们,完全可以自定义规则,特别是白名单规则来防护我们网站。...2: 上传文件名包含%00进行阻断 vim /usr/share/modsecurity-crs/activated_rules/MY.conf 添加规则 SecRule FILES “@contains...http www.tanjiti.com filename@a.php%00.jpeg 我们可以看到请求包被拦截,查看modsecurity日志 more /var/log/apache2/modsec_audit.log

3.1K31

一文读懂 Redis 架构演化之路

有没有什么好办法解决这个问题?既然 Redis 只把数据存储在内存,那是否可以把这些数据也写一份到磁盘上呢?...开发者可以对 AOF 文件定时 rewrite,避免这个文件体积持续膨胀,以保障恢复时可以缩短恢复时间。 各位开发者们再进一步思考:还有没有办法继续缩小 AOF 文件?...选举哨兵领导者时,我们可以制定一个选举规则: ● 每个哨兵都询问其它哨兵,请求对方为自己投票; ● 每个哨兵只投票给第一个请求投票哨兵,且只能投票一次; ● 首先拿到超过半数投票哨兵当选为领导者,...我们制定规则如下: ● 每个节点各自存储一部分数据,所有节点数据之和才是全量数据; ● 制定一个路由规则,将不同 key 路由到固定一个实例上进行读写。...我们开始想办法把这个流程变得自动化。所以我们又引入了「哨兵」集群——哨兵集群通过互相协商方式来发现故障节点,并可以自动完成切换。这大幅降低了对业务、应用影响。

73631

Redis演进过程总结

有没有什么好办法解决这个问题? 既然 Redis 只把数据存储在内存,那是否可以把这些数据也写一份到磁盘上呢?...我们可以对 AOF 文件定时 rewrite,避免这个文件体积持续膨胀,这样恢复时就可以缩短恢复时间了。 ? 再进一步思考一下,还有没有办法继续缩小 AOF 文件?...选举哨兵领导者时,我们可以制定这样一个选举规则每个哨兵都询问其它哨兵,请求对方为自己投票 每个哨兵只投票给第一个请求投票哨兵,且只能投票一次 首先拿到超过半数投票哨兵,当选为领导者,发起主从切换...我们制定规则如下: 每个节点各自存储一部分数据,所有节点数据之和才是全量数据 制定一个路由规则,对于不同 key,把它路由到固定一个实例上进行读写 而分片集群根据路由规则所在位置不同,还可以分为两大类...这个方案缺点是,客户端需要维护这个路由规则,也就是说,你需要把路由规则写到你业务代码。 如何做到不把路由规则耦合在业务代码呢?

76740

节点负载差距这么大,为什么收到流量还一样?

但业务接着反馈了,说:当他们发现服务可用率降低时候,业务请求已经受到影响了,这时再如此解决,需要时间啊,那这段时间里业务可能已经有损失了。...了解完 RPC 框架负载均衡,现在我们就可以回到这讲最开头业务提那个需求:有没有什么办法可以动态地、智能地控制线上服务节点所接收到请求流量?...服务调用者给每个服务节点都打完分之后,会发送请求,那这时候我们又该如何根据分数去控制给每个服务节点发送多少流量呢? 我们可以配合随机权重负载均衡策略去控制,通过最终指标分数修改服务节点最终权重。...运行时状态指标收集器收集服务节点 CPU 核数、CPU 负载以及内存等指标,服务调用者与服务提供者心跳数据获取。 请求耗时指标收集器收集请求耗时数据,如平均耗时、TP99、TP999 等。...除此之外,重点还涉及到“如何设计一个自适应负载均衡”,通过它,我们可以就能根据服务调用者依赖服务集群每个节点自身状态,智能地控制发送给每个服务节点请求流量,防止因某个服务节点负载过高、请求处理过慢而影响到整个服务集群可用率

98030

Sentinel 隔离降级

所以我们要想实现隔离降级啊,最好办法就是基于Feign去整合Sentinel去做隔离降级,那怎么去实现呢?...(我们选择这种) 这两种方式本身没有太大差别啊,只不过FallbackClass它没有办法去编写逻辑过程处理异常,但是FallbackFactory却可以。...2.3.2 异常比例、异常异常比例顾名思义,它不是去看你调用快或慢,而是看你有没有异常。 只要你抛异常了,就算是有问题了,然后呢?异常比例也就是说只要抛异常请求次数。...1 设置异常请求 首先,修改user-service/user/{id}这个接口业务。...手动抛出异常,以触发异常比例熔断: 2 设置熔断规则 下面,给feign接口设置降级规则规则5次请求,只要异常比例超过0.4,也就是有2次以上异常,就会触发熔断。

28710

专栏RPC实战与核心原理-第三天学习

疑问 那对于我们 RPC 框架来说,有什么办法可以减少上线变更导致风险吗? 这就不得不提路由 RPC 应用。具体好在哪里,怎么实现,我们接着往下看。 如何实现路由策略?...其关键点就是调用端收集服务端每个节点指标数据,再根据各方面的指标数据进行计算打分,最后根据每个节点分数,将更多流量打到分数较高节点上 12 | 异常重试:约定时间内安全可靠地重试 问题描述:为什么需要异常重试...问题2 有没有想到连续重试对请求超时时间影响?...RPC 框架是不会知道哪些业务异常能够去进行异常重试,我们可以加个重试异常白名单,用户可以将允许重试异常加入到这个白名单 只有 RPC 框架特定异常才会如此,比如连接异常、超时异常。...每次处理完请求之后,必须有一个记录标识这个请求处理过了。常见方案是 mysql 记录个状态啥,比如支付之前记录一条这个订单支付流水。 每次接收请求需要进行判断,判断之前是否处理过。

1.3K20

使用孤立森林进行无监督离群检测

简单线性回归情况下,错误异常值会增加模型方差,并进一步降低模型对数据把握能力。异常值导致回归模型(尤其是线性模型)学习对异常偏差理解。...而孤立森林亮点在于它可以使用“孤立”规则来直接检测异常(一个数据点与其余数据距离)。...每个数据点将在X轮之后根据它们被隔离容易程度获得分数,有异常分数数据点将被标记为异常。 通过随机选择属性q分割值p(属性q最小最大值内)递归地分割每个数据实例,直到它们完全隔离。...然后算法将提供一个排名,根据路径长度反映每个数据实例异常程度。排名或分数称为异常分数,其计算方法如下: H(x):数据实例x完全隔离之前步骤数。 E[H(x)]:隔离树集合H(x)平均值。...或者说任何低于 0.5 分数都将被识别为正常实例。 另外需要说明是: sklearn 实现异常分数与原始论文中定义异常分数相反。它会减去常数 0.5。

44210

关于安全体系WAF探讨

使用WAF可以增加业务web层安全性。 众所周知,阻断意思是当一个恶意请求发送过来时,通过一系列判断此请求有威胁,发出告警并拒绝向后端转发行为称之为阻断行为。...评论只为了检测报警称之为仅检测行为,意为当一个恶意请求发送过来时,通过一系列判断此请求有威胁,发出告警但不拒绝向后端转发行为。 ?...操作手册记录了关键步骤操作,比如策略怎么调整,日志分析怎么做,怎么切换运行模式,甚至运行模式我都有做解释什么时候用什么模式。常见问题记录是部署升级过程一些坑。策略调整记录顾名思义。...于此同时ELK做日志分析,取transaction.messages:*值,因为modsec日志输出时如果使用是json格式,告警name就是transaction.messages,取他所有的值用作分析...match字段是匹配到正则表达式,在这里可以判断触发是否合理,file字段是正则表达式所在文件,可以对规则进行修改,ruleId是规则标号,可以直接过滤掉此条规则,之后将不在对此ID规则进行检测

1.1K20

013:Redis延时队列

使用过 Rabbitmq 同学知道它使用起来有多复杂,发消息之前要创建 Exchange,再创 建 Queue,还要将 Queue Exchange 通过某种规则绑定起来,发消息时候要指定 routing-key...不但客户端 CPU 能降下来,Redis QPS 也降下来了。 import time time.sleep(1) #python延时一秒 队列延迟 用上面睡眠办法可以解决问题。...有没有什么办法能显著降低延迟呢?你当然可以很快想到:那就把睡觉时间缩短点。这种方式当然可以,不过有没有更好解决方案呢?当然也有,那就是 blpop/brpop。...所以编写客户端消费者时候要小心,注意捕获异常,还要重试 锁冲突处理 上篇我们讲了分布式锁问题,但是没有提到客户端处理请求时加锁没加成功怎么办。...一般有 3 种策略来处理加锁失败: 1、直接抛出异常,通知用户稍后重试; 2、sleep 一会再重试; 3、将请求转移至延时队列,过一会再试; 直接抛出特定类型异常 这种方式比较适合由用户直接发起请求

2.2K30

Redis高可用集群搭建,配置,运维与应用!

前言 现如今 Redis 变得越来越流行,几乎很多项目中都要被用到,不知道你使用 Redis 时,有没有思考过,Redis 到底是如何稳定、高性能地提供服务?...有没有什么好办法解决这个问题? 既然 Redis 只把数据存储在内存,那是否可以把这些数据也写一份到磁盘上呢?...选举哨兵领导者时,我们可以制定这样一个选举规则每个哨兵都询问其它哨兵,请求对方为自己投票 每个哨兵只投票给第一个请求投票哨兵,且只能投票一次 首先拿到超过半数投票哨兵,当选为领导者,发起主从切换...我们制定规则如下: 每个节点各自存储一部分数据,所有节点数据之和才是全量数据 制定一个路由规则,对于不同 key,把它路由到固定一个实例上进行读写 而分片集群根据路由规则所在位置不同,还可以分为两大类...这样就大幅降低了对业务应用影响。

53510

云视频会议背后语音核心技术揭秘:如何进行语音质量评估?

免提模式,嘴巴发出声音,到声音采集设备麦克风距离较大,语音衰减大,相比环境噪声来讲,语音信噪比降低很多,同时为了采集到合适大小声音,麦克风灵敏度增益要提高,回声混响进一步增多。...传统电信业界,每个硬件设备针对其场景接入模式,都根据自己硬件特性,都分别做了优化,但对于语音视频会议或纯语音通信应用来说,可能没有办法完全知道用户接入场景,也没办法获得更多设备硬件信息,所接触到语音...算法层面外,软件跟操作系统中间协作存在设备启动异常,包括麦克风没正常打开、或打开滞后,线程同步异常导致声音卡顿、音频缓冲区管理、计算资源管理等,这些都是影响语音质量因素。     ...六、语音质量评估模型演进     目前业界基于MOS分数(语音质量分数)有两类语音质量评估模型,有参考语音质量评估模型无参考语音质量评估模型,腾讯会议都有使用。...,在对比过程,首先把声音对齐,找到二者偏差,对齐后把每个小片段语音无损小片段语音单独放到听觉模型,看各频段上频率成本损失、有无额外频率产生,这些频率成分增减听觉上是否足够显著等,最后做整个时域上做各片段语音损伤情况平滑

2.6K20

这里有一批Dubbo你不知道操作方式

这部分数据不需要进入注册中心,而只需要以key-value形式持久化存储。 dubbo consumer配置项也有20+个配置项。...隐式参数 可以通过 RpcContext 上 setAttachment getAttachment 服务消费方提供方之间进行参数隐式传递 Consumer异步调用 基于 NIO 非阻塞实现并行调用...你使用 Dubbo 过程,并不会感知到此变化,因此请放心使用 并发控制 限制 com.foo.BarService 每个方法,限制 com.foo.BarService sayHello 方法...覆盖规则是Dubbo设计无需重启应用情况下,动态调整RPC调用行为一种能力。2.7.0版本开始,支持从服务应用两个粒度来调整动态配置。...服务消费方 停止时,不再发起新调用请求,所有新调用在客户端即报错。然后,检测有没有请求响应还没有返回,等待响应返回,除非超时,则强制关闭。

1.3K10

基于接口数据变异App健壮性测试实践

01 什么是客户端健壮性 维基百科定义,健壮性(Robustness)是指一个计算机系统执行过程处理错误,以及算法遭遇输入、运算等异常时继续正常运行能力。...一个页面包含多个异步请求,因此请求构造也需要和页面路径关联。这些都是采集变异所需基础数据时需要关注控制。...我们可以把请求响应JSON理解成树,第一个解决思路是判断树节点、路径相似度,相似节点删减构造。...如果路径、节点相似,可以推测路径即业务逻辑也是一致,比如页面上一些列表元素,可能是数据结构对象完全一致数组,如果对每个数组对象每个元素进行全用例构造,生成变异数据量极大,且对业务场景或代码逻辑增量覆盖有限...A:对于首页关联接口,我们接口请求、录制过程中和录制完数据后,会对接口进行确认到底有哪些接口是我们需要验证,这是一次性成本,录制完成后,会对每个字段都进行异常验证,当然会有一些黑白名单设置。

18510

项目经理值得一试思维方式:项目成功方程式

有没有一个一劳永逸项目管理实践?” “我怎样才能找到一个能够解决所有问题方法?” “为什么我用都是同样方法,但有的项目延期了?” …… 很多敏捷群,经常会有人问这些问题。...; 可变性:由于用户需求、市场等外在因素是持续变化,这要求软件需要具备可变性; 不可见性:每个人对软件、需求或任务都有不同理解,这会让沟通变得异常困难。...这些特性软件交付项目中会产生诸多挑战,降低团队效能,甚至会导致项目失败。 面对这些挑战,我们并非没有办法。虽然软件交付项目中没有银弹,但项目成功是一系列因素共同作用结果。...相对应,如果将每一项都降低为0.99,比如管理粗糙“一点”、价值降低“一点”、行动慢“一点”……这样项目就会漏洞百出。 那如何将项目中因素从1提升到1.01呢?...以下行动路径可以给大家一些帮助: 项目因素 具体行动措施 要求 立即行动 项目成功方程式只是帮助项目经理们更好地思考问题一种方式,项目成功受多方因素影响,上面列举出来并非影响项目成功全部因素,因此项目相关成员可以根据自己经验教训

33520
领券