调试代码可能会成为潜在的安全漏洞

news2024/11/25 1:44:40

有时候,我们不得不开发一些所谓的”调试用”代码。
但是,不要忘记了,虽然这些调试代码只是用来调试的,但是并不意味着我们就可以忽略掉安全性。

我记得,曾经有一位客户问过如下的问题:

我们正在开发一个后台服务,为了调试方便,我们想连接这个服务并提取一些存储在服务中的私密数据出来,通常情况下,这个数据不应该被任何人接触到。通过这种方式,我们就可以对比下,看看这些数据是否是我们所预期的。这个只是用来调试而已,在正常工作阶段它不会被调用。对于这种场景,你有什么建议呢?

请记住,网络上的坏家伙们可不管你的代码是正常的业务代码还是调试用的代码,一旦他们发现了代码中的漏洞,就会发起攻击。

这个客户花费了很多精力来保护这个内部数据,确保后台服务不会以任何方式泄露此数据,但是上面的想法完全违背了他们的最初目标,并且留下的这道后门将会为黑客提供攻击点。

虽然他们开发了很多保护性代码,但是和他们开出来了这个口子相比,这些保护性代码都没有意义了。

我有一个打印机驱动程序,它总是会在驱动器的根目录中创建日志文件。这个日志文件是全局可读的,其中包含我打印的每个网页的地址。如果我以管理员身份登录并删除日志文件,则下次打印文档时它还是会创建这个文件。

我假设打印机供应商出于诊断目的创建了此日志文件,但它同时也会产生安全漏洞。系统上的每个人都可以看到由其他人打印的任何网页地址,这就是所谓的”裸奔”了。供应商是舒服了,但用户就没那么幸运了。

总结

在开发拓扑梅尔智慧办公平台 (Topomel Box) 的初始阶段,我花了些功夫研究了一些和”主业”不那么相关的主题,例如网络传输加密,本地数据加密等,虽然这会导致进度缓慢,但带来的是那些看不到的回报,例如: “用户的信任”。
我们不能辜负用户对我们的信任。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Your debugging code can be a security hole》

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文带你搞懂防盗链

防盗链 举个例子。我们平时在网上看到图片,觉得不错,想要复制地址。有的复制地址后我们可以拿来用,但是有的,就算是复制地址,用到我们自己的img上,还是没效果。 原因是,有的图片所在服务有自己…

跨境电商客户服务五步法

互联网技术的革新与升级对商务客服产生了巨大的影响,过去由在线客服与客户直接电联的单一服务形式被全渠道客服系统所替代。在电子商务时代,商家与客户之间的互动变得尤为重要:一方面,卖家通过分析客户喜好及消费趋向来针对性处理…

WhatsApp-跨境电商必争之地

作为世界上最受欢迎的即时通讯软件,WhatsApp在全球拥有超过20亿的月活跃用户,覆盖180多个国家,每天通过WhatsApp发送的消息数量超过了1000亿条。作为中国企业出海的热门国家,印度、巴西、美国、印尼...同时也是WhatsApp受众排名前…

数据在内存中的存储(2)——浮点数

目录 1、什么是浮点数 2、浮点数与整数存储方式相同吗? 3、浮点数的存储规则 3.1 、国际标准IEEE(电气和电子工程协会) 754 3.2、IEEE 754规定: 3.3、IEEE 754对有效数字M的规定。 3.4、IEE 754对有效数字E的规定 E不全为0或不全…

Day58【单调栈】739.每日温度、496.下一个更大元素 I

739.每日温度 力扣题目链接/文章讲解 视频讲解 暴力解法很容易想到。外层 for 遍历填充 answer,内层 for 针对每一天去寻找下一个更高温度 直接超时 本题可以采用单调栈解决! 什么是单调栈? 从名字上就听的出来,单调栈中…

创建型设计模式05-抽象工厂模式

✨作者:猫十二懿 ❤️‍🔥账号:CSDN 、掘金 、个人博客 、Github 🎉公众号:猫十二懿 抽象工厂模式 1、抽象工厂模式介绍 抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式&#x…

MATLAB按照曲线模型拟合数据

用到了曲线拟合工具箱,如果没有下载需要另外安装: 没有下载的话在命令行内输入cftool不会弹出窗口,而是提示没有这个命令 在菜单栏的APP: 点击获取更多APP: 在弹出的窗口输入Curve Fitting Toolbox 注意这里输入cft…

100种思维模型之多维视角思维模型-70

“多维视角思维模型”让我们用众生之眼看世界,继而看见更真实世界的思维模型。 01、何谓多维度视角思维模型 一、多维度视角 所谓多维视角,指的是除了用自己本能的视角看待问题,还会用360度其他人的视角,如对立面的视角&#xff…

仅用自然语言,让ChatGPT输出连贯的长篇小说!苏黎世联邦理工大学提出RecurrentGPT

夕小瑶科技说 原创 作者 | ZenMoore,Wangchunshu Zhou 前言 ChatGPT 是万能的吗? 显然不是,至少在今天我们所讨论的长文本生成上,ChatGPT 可以说是几乎完全不太可能生成长篇小说。 在某种程度上,这是 Transformer 模…

2自由度并联关节的制作

1. 运动功能说明 2自由度并联关节模组的主要运动方式为用舵机带动连杆摆动。 2. 结构说明 构成本模组的零部件主要是舵机(行程0度~180度)、舵机支架、舵机输出头、连杆、螺丝、螺母等。此模组的机械系统介绍及运动学算法讲解可参考【R306】5自由度并联机…

回收站不见了怎么恢复?3个方法快速解决!

案例:我想把需要删除的软件拖到桌面回收站中进行删除,却发现我电脑桌面上的回收站不见了,有小伙伴知道怎么恢复吗? 在日常使用电脑的过程中,回收站是一个至关重要的功能。当我们删除文件时,它提供了一个安…

git 远端分支管理、仓库迁移:017

1. 在Github上创建分支: 2. 在Github上删除分支: 3. 使用命令来删除远端分支: 如果远端分支发生改变, 需要通过git pull来获取远端最新分支,如下图,就可以看到获取到了最新分支: 查看本地分支和…

springboot+vue新闻稿件java在线投稿管理系统

本文介绍了新闻稿件管理系统的开发全过程。通过分析新闻稿件管理系统管理的不足,创建了一个计算机管理新闻稿件管理系统的方案。文章介绍了新闻稿件管理系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计…

数据库整理

文章目录 1、将Excel转换为CSV1.1 代码 2、将CSV文件的数据追加到另一个CSV文件2.1 代码 3 、另外的发现 背景:在数据库里面导出来一批excel文件,现在需要将这些数据进行合并为csv文件 分两步: 1、将Excel转换为CSV 参考:用Pytho…

如何使用宝塔面板搭建网站(搭建宝塔页面)

书接上回,咱们已经搭建好咱们的Linux服务器,接下来改是搭建宝塔页面的教程了。 这里我们需要一个域名,自行去各家云服务器购买域名(例如:腾讯云,阿里云,华为云等等) 购买一个域名之…

FPGA纯vhdl实现XGMII接口10G万兆网UDP协议DMA传输 配合10G Ethernet PCS/PMA使用 提供工程源码和技术支持

目录 1、前言2、我这里已有的UDP方案3、详细设计方案传统UDP网络通信方案本方案详细设计说明DMA和BRAMAXIS-FIFO10G-UDP协议栈10G Ethernet PCS/PMA IP核输出 4、vivado工程详解Block Design设计SDK设计 5、上板调试验证并演示6、福利:工程代码的获取 1、前言 目前…

【ChatGPT】开发人员教程:38 种提高 10 倍工作效率的方法(附Youtube视频地址)...

1. 推荐3本顶级的学习xx的书籍 2. 询问细节:“Head first Java”的主要内容是什么?What are the key takeaways from "Head first Java"? 3. 我如何成为一名前端开发人员?How do I become a front-end developer? (英…

JVM-常用工具(jps、jstat、jinfo、jmap、jhat、jstack、jconsole、jvisualvm)使用

场景 记录JVM中常用工具。 jps:虚拟机进程状态工具 jps(JVM Process Status Tool):虚拟机进程状态工具,可以列出正在运行的虚拟机进程, 并显示虚拟机执行主类(Main Class,main()函数所在的类)的名称&am…

【Mininet】安装篇:安装Mininet

大家好,我是皮皮猫吖! 每文一言:改变你的生活,现在或者从不 本篇文章: 本文是安装 mininet 的简单过程。 正文如下: 一、Mininet的安装 第一步:安装git apt install git 第二步&#xff…

element-ui配置按需引入和全局引入

镇楼图 按需引入 安装element-plus cnpm install element-plus --save 安装按需导入 cnpm install -D unplugin-vue-components unplugin-auto-import修改vite.config.js配置按需加载 import AutoImport from unplugin-auto-import/viteimport Components from unplugin-vue-…