首页 运维 nginx nginx-naxsi白名单规则是什么

nginx-naxsi白名单规则是什么

May 13, 2023 pm 04:19 PM
nginx naxsi

白名单规则语法:

basicrule wl:id [negative] [mz:[$url:target_url]|[match_zone]|[$args_var:varname]|[$body_vars:varname]|[$headers_var:varname]|[name]]

wl:id (white list id) 哪些拦截规则会进入白名单
wl:0 把所有拦截规则加入白名单
wl:42 把id为42的拦截规则加入白名单
wl:42,41,43 把id为42, 41和43的拦截规则加入白名单
wl:-42 把所有拦截规则加入白名单,除了id为42的拦截规则

mz:(match zones)

args get的整个参数,如: foo=bar&in=%20
$args_var get参数的参数名, 如:foo=bar&in=%20中的foo和in
$args_var_x 正则匹配的get参数的参数名
headers 整个http协议头
$headers_var http协议头的名字
$headers_var_x 正则匹配的http协议头的名字
body post的整个参数内容
$body_var post参数的参数名
$body_var_x 正则匹配的post参数的参数名
url url(?前的)
url_x 正则匹配的url(?前的)
file_ext 文件名 (post上传文件时上传的文件名)

白名单配置示例

以规则#1000为例:规则#1000是过滤包含select、update、delete、insert等sql关键字的规则

规则 说明
basicrule wl:1000; 在本子规则中完全禁用拦截规则#1000。因为没有指定区域,所以全部加入白名单。
basicrule wl:1000 "mz:$args_var:foo";

在全部get参数名为foo的值中禁用拦截规则#1000

类似http://mike.hi-linux.com/?foo=select * from demo这样的请示就不会被过滤。

basicrule wl:1000 "mz:$url:/bar|args";

在url为/bar的get请求中的参数禁用拦截规则#1000

以下类似请求,均不会过滤:

http://mike.hi-linux.com/bar?my=select * from demohttp://mike.hi-linux.com/bar?from=weibo

basicrule wl:1000 "mz:args|name";

在全部get请求中对所有参数名(只是名,不包含参数值)中禁用拦截规则#1000

以下请求不会过滤:

http://mike.hi-linux.com/bar?from=weibo

以下请求会过滤:

http://mike.hi-linux.com/bar?foo=select

因为select属于参数值,不在白名单范围内。

basicrule wl:0 "mz:$url_x:^/upload/(.*).(.*)$|url";

在全部请求中对符合^/upload/(.*).(.*)$正则规则的url禁用全部拦截规则

类似http://mike.hi-linux.com/upload/select.db请求不会被过滤(原本会触发#1000拦截规则)。

实战用的白名单规则
# vi naxsi_basicrule.conf
basicrule wl:1010,1011 "mz:$args_var:rd";
basicrule wl:1015,1315 "mz:$headers_var:cookie";

以上是nginx-naxsi白名单规则是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Stock Market GPT

Stock Market GPT

人工智能驱动投资研究,做出更明智的决策

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

如何用PHP开发问答社区平台 PHP互动社区变现模式详解 如何用PHP开发问答社区平台 PHP互动社区变现模式详解 Jul 23, 2025 pm 07:21 PM

1.PHP开发问答社区首选Laravel MySQL Vue/React组合,因生态成熟、开发效率高;2.高性能需依赖缓存(Redis)、数据库优化、CDN和异步队列;3.安全性必须做好输入过滤、CSRF防护、HTTPS、密码加密及权限控制;4.变现可选广告、会员订阅、打赏、佣金、知识付费等模式,核心是匹配社区调性和用户需求。

是什么导致NGINX中的'太多打开文件”错误? 是什么导致NGINX中的'太多打开文件”错误? Jul 05, 2025 am 12:14 AM

当Nginx出现“Toomanyopenfiles”错误时,通常是因为系统或进程达到了文件描述符限制。解决方法包括:1.提高Linux系统的软硬限制,在/etc/security/limits.conf中设置nginx或运行用户的相关参数;2.调整Nginx的worker_connections值以适应预期流量,并确保重载配置;3.增加系统级文件描述符上限fs.file-max,编辑/etc/sysctl.conf并应用更改;4.优化日志和资源使用,减少不必要的文件句柄占用,例如使用open_l

如何用Mac搭建PHP Nginx环境 MacOS配置Nginx与PHP服务组合 如何用Mac搭建PHP Nginx环境 MacOS配置Nginx与PHP服务组合 Jul 25, 2025 pm 08:24 PM

Homebrew在Mac环境搭建中的核心作用是简化软件安装与管理。1.Homebrew自动处理依赖关系,将复杂的编译安装流程封装为简单命令;2.提供统一的软件包生态,确保软件安装位置与配置标准化;3.集成服务管理功能,通过brewservices可便捷启动、停止服务;4.便于软件升级与维护,提升系统安全性与功能性。

如何在NGINX中启用HTTP/2或HTTP/3支持? 如何在NGINX中启用HTTP/2或HTTP/3支持? Jul 02, 2025 am 12:36 AM

要启用Nginx的HTTP/2或HTTP/3支持,需满足前提并正确配置;HTTP/2需Nginx1.9.5 、OpenSSL1.0.2 及HTTPS环境;配置时添加--with-http_v2_module模块,修改监听语句为listen443sslhttp2;并重载服务;HTTP/3基于QUIC,需使用第三方模块如nginx-quic,编译时引入BoringSSL或OpenSSLQUIC分支,并配置UDP监听端口;部署时常见问题包括ALPN未启用、证书不兼容、防火墙限制及编译错误,建议优先采用

如何利用Kubernetes保持PHP环境一致 生产和本地容器配置标准 如何利用Kubernetes保持PHP环境一致 生产和本地容器配置标准 Jul 25, 2025 pm 06:21 PM

要解决PHP环境在本地与生产之间不一致的问题,核心在于利用Kubernetes的容器化与编排能力实现环境统一,具体步骤如下:1.构建统一的Docker镜像,包含所有PHP版本、扩展、依赖和Web服务器配置,确保开发与生产使用同一镜像;2.使用Kubernetes的ConfigMap和Secret管理非敏感与敏感配置,通过卷挂载或环境变量注入,实现不同环境配置的灵活切换;3.通过统一的Kubernetes部署定义文件(如Deployment、Service)保障应用行为一致性,并纳入版本控制;4.

如何用PHP开发电商后台变现 PHP电商系统架构与盈利策略 如何用PHP开发电商后台变现 PHP电商系统架构与盈利策略 Jul 25, 2025 pm 06:33 PM

1.PHP电商后台主流框架有Laravel(开发快、生态强)、Symfony(企业级、结构稳)、Yii(性能优、适合标准化模块);2.技术栈需搭配MySQL Redis缓存 RabbitMQ/Kafka消息队列 Nginx PHP-FPM,并考虑前后端分离;3.高并发架构应分层模块化、数据库读写分离/分库分表、用缓存和CDN加速、异步处理任务、负载均衡与Session共享、逐步微服务化并建立监控告警体系;4.多元变现路径包括商品差价或平台佣金、站内广告、SaaS订阅、定制开发与插件市场、API接

@在位置块(命名位置)中是什么意思? @在位置块(命名位置)中是什么意思? Jul 09, 2025 am 01:49 AM

在NGINX配置中,location块内的@符号用于定义命名位置,这些是仅限内部使用的端点,不能直接由客户端请求匹配,它们通常通过error_page、try_files或rewrite指令调用。1.命名位置以@开头,如location@notfound,不会响应直接请求,而是从配置其他部分触发;2.常用于自定义错误处理、内部路由和后端代理回退;3.例如,结合try_files实现静态文件不存在时转发到@backend;4.注意事项包括:不可直接访问、避免命名冲突、使用描述性名称。命名位置可包含

在重新加载之前,如何测试我的NGINX配置是否为语法错误? 在重新加载之前,如何测试我的NGINX配置是否为语法错误? Jul 13, 2025 am 01:06 AM

修改Nginx配置后应先测试语法再重载服务。1.使用nginx-t检查配置文件语法,若提示“syntaxisok”和“testissuccessful”则表示无误;若有错误会显示具体问题行。2.若配置文件权限较高,需使用sudonginx-t执行。3.确认测试的是实际加载的配置路径,可通过nginx-t-c/path/to/your/nginx.conf指定路径,或通过ps-ef|grepnginx查看主进程使用的配置文件。4.测试通过后执行sudonginx-sreload重载服务使新配置生效

See all articles