关键数据隐藏,消除访问日志中的数据安全隐患
1. 背景介绍
NJet目前应用最多的是做HTTP代理。为了业务跟踪及故障分析等原因,代理经常会把业务请求的日志详细记录到access.log的文件中,包括请求参数,访问耗时,访问代码等等。这个文件,会无意中泄漏出比较敏感的信息,比如查询参数中的证件号码,银行卡号,手机号码,或能够泄漏出具体位置的访问ip等等。由于日志文件的关注度不高,并随着运维流程被四处传递,这样就导致了严重的数据安全漏洞。因此必须对日志文件中的敏感数据做隐藏处理,从而符合企业的数据安全规范,保证客户的权益。
2. 实现简介
NJet 针对企业越来越严格的安全要求,特意实现了名为“数据消隐”的安全加固模块,该模块主要实现了两类数据的隐藏:首先是NJet变量的隐藏,主要像客户端的IP,或某些header,比如 日志格式中配置了记录访问的client_ip, 则被隐藏后,文件中原记录的“10.0.0.x” 这样的记录则被简单的替换为“";再则是查询参数中的某些属性,原始记录中的”?phone_num=13900000000&flag=1“ 就被替换为“?phone_num=&flag=1”,如果phone_num被定义为敏感信息的话。
另外需要强调的敏感数据定义是完全动态可配置的。目前覆盖到的是客户端连接数据,查询参数,由于restful接口会把业务属性存放到uri的path中,后续“数据消隐”模块还需要把隐藏的类型扩展到path,才能更好的满足企业的要求
2.1 实现指令
新增一个配置数据隐藏的指令log_data_hidden
Syntax | log_data_hidden {hidden_type} {hidden_data}; |
---|---|
Default | - |
Context | NJT_HTTP_MAIN_CONF|NJT_HTTP_SRV_CONF|NJT_HTTP_LOC_CONF| NJT_HTTP_LIF_CONF|NJT_HTTP_LMT_CONF|NJT_CONF_TAKE2 |
参数介绍:
参数 | 取值 | 说明 |
---|---|---|
hidden_type | [var|query_param] | var: 将整个变量隐藏,替换为'' query_param:对url后面的query_param对应的值隐藏,替换为'' |
hidden_data | 变量name或者是query_param的key |
说明:
- 该指令可配置在http块的任何位置,可配置多条
- http块的配置对所有的server和location生效
- server块的配置对该server块下所有的location生效
- location块的配置只对该location生效
3. 配置示例
假设某企业利用NJet做业务代理,其acess.log 采用如下的日志格式,即把业务请求中的请求地址,时间,具体的请求行都记录下来
log_format combined ‘$remote_addr - $remote_user [$time_local] ' '"$request" $status $body_bytes_sent '
其产生的日志行如下:
192.168.40.158 - - [03/Jul/2024:14:17:02 +0800] "GET /svc?ID=372929199605756028&status=1 HTTP/1.1" 200 9 "-" "curl/7.29.0"
因为请求的查询参数中ID是敏感的,需要隐藏。因此在配置文件中该location下配置数据隐藏
location /svc { ... log_data_hidden query_param ID; #query_param a隐藏 ... }
隐藏后产生的日志如下
192.168.40.158 - - [03/Jul/2024:14:17:02 +0800] "GET /svc?ID=372929199605756028&status=1 HTTP/1.1" 200 9 "-" "curl/7.29.0" 192.168.40.158 - - [03/Jul/2024:14:17:48 +0800] "GET /svc?ID=*&status=1 HTTP/1.1" 200 9 "-" "curl/7.29.0"
4. 参考及其它说明
- NJet 使用的变量和nginx兼容,请参考 https://nginx.org/en/docs/varindex.html
- “数据消隐” 在NJet3.0开始支持

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
低代码如何借助 K8s 实现高并发支持?
引言 在当今这个数字化时代,互联网的普及和技术的飞速发展使得应用程序面临着前所未有的挑战,其中最为显著的就是高并发访问的需求。随着用户数量的激增和业务规模的扩大,如何确保应用在高并发场景下依然能够稳定运行、快速响应,成为了所有开发者和技术团队必须面对的重要课题。 Kubernetes(K8s),作为云原生时代的标志性技术之一,凭借其强大的容器编排能力、自动化部署和扩展功能,在解决高并发问题方面展现出了巨大的潜力。K8s通过抽象底层资源,提供了一套高效、灵活、可扩展的容器管理方案,使得开发者能够更加专注于业务逻辑的实现,而无需过多关注底层基础设施的复杂性和运维难题。 然而,尽管K8s为应用的高并发处理提供了强有力的支持,但其复杂的配置和管理流程仍然对开发者的技术能力提出了较高的要求。为了降低这一门槛,让更多的开发者能够充分利用K8s的优势,低代码平台应运而生。低代码平台通过提供可视化的开发环境、拖拽式的组件库以及自动化的部署和管理工具,极大地简化了应用的开发、测试和部署流程,使得开发者能够用更少的代码和更短的时间完成高质量的软件开发。 因此,本文将深入探讨低代码平台如何与K8s结合,以支...
- 下一篇
开启智能化新纪元,TDengine 用户大会圆满落地:汽车、能源、烟草、电力行业洞见
近年来,随着物联网、车联网、工业互联网等前沿技术的迅猛发展,全球数据量呈指数级增长。作为大数据的一个重要组成部分,时序数据因其在实时监控、预测分析和智能决策中的独特优势,正逐步成为数字化转型的关键要素。尤其在 AI 时代,时序数据的价值愈发凸显,各行业对时序数据技术的需求也日益迫切。 在此背景下,7 月 26 日,涛思数据倾力打造的年度盛事——TDengine 用户大会在北京·昆泰嘉瑞文化中心成功举办。围绕着“时序数据助你决胜 AI 时代”的会议主题,涛思数据(TDengine)创始人 & CEO 陶建辉携手中国科学院院士 & CCF 开源发展委员会主任王怀民、中国信息通信研究院云计算与大数据研究所所长何宝宏、中国石油长庆油田数智事业部经理丑世龙、阿尔法公社创始合伙人 & CEO 许四清等数十位重磅嘉宾,为与会者带来关于时序数据的最新发展、AI 技术的前沿应用以及如何通过数据驱动企业转型等维度的精彩分享。 此外,本次大会还设置了新书发布环节,由涛思数据技术团队撰写的《时序大数据平台-TDengine 核心原理与实战》一书重磅亮相,为更多有时序数据处理需求的开发者...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音