# 开发安全

news2024/11/6 7:18:31

开发安全

文章目录

  • 开发安全
    • 安全开发生命周期
    • 安全开发目标
    • 安全开发基本准则
    • 注入类攻击手段
      • Sql注入
      • 命令执行
      • 命令执行防御
      • 文件遍历
      • 防御
    • 植入类安全漏洞防御
      • XSS(前端漏洞)
        • 防御
      • 储存型XSS
      • 文件上传
        • 防御
      • CSRF
        • 防御
      • 会话固定
        • 防御
    • 其它类型安全漏洞
      • 越权访问
        • 防御
      • 口令爆破
    • 安全编码规范
      • 输入验证和数据净化
    • 业务安全漏洞
      • 逻辑漏洞
        • 逻辑混淆
        • 流程乱序
        • 数据重放
      • 规避方案
    • 第三方安全
      • 缓解方案
    • 如何安全的开发
      • 安全培训
      • 安全设计
      • 安全编码
      • 代码审查
      • 安全测试
      • 定期更新和补丁
      • 访问控制
      • 加密
      • 事件监控和响应
      • 持续改进
      • 事件监控和响应
      • 持续改进

开发安全是指在软件开发过程中注重安全性,采取措施防止恶意攻击和数据泄露。这包括对代码进行安全审查,使用安全编程实践和工具,以及定期进行安全漏洞扫描和修复。开发安全是确保软件系统在设计和实现阶段考虑到安全性,并且在运行时能够有效地保护系统和数据免受攻击和威胁的过程。

安全开发生命周期

  • 需求分析阶段
  • 设计阶段:考虑安全方面的设计
  • 开发阶段:遵守编码安全规范、自动化测试工具
  • 测试阶段:渗透测试
  • 部署维护阶段:定期更新修复安全漏洞

安全开发目标

  • 保护隐私
  • 防止安全攻击漏洞
  • 确保系统可用
  • 遵守法律
  • 维护品牌荣誉
  • 节省成本资源

安全开发基本准则

  • 安全优先
  • 防御性编程:编写健壮的程序,能处理不良输入和异常输出

注入类攻击手段

Sql注入

  • 改变sql语义
SELECT * FROM users WHERE username = '输入的用户名' AND password = '输入的密码';
# 如果攻击者在用户名字段中输入 ' OR '1'='1 ,那么SQL查询就会变成:
SELECT * FROM users WHERE username = '' OR '1'='1' AND password = '输入的密码';
  • SQL注入:预编译sql

命令执行

  • 通过改变输入执行系统命令。调用cmdping

命令执行防御

  • 参数化传值,避免拼接用户输入

  • 验证、过滤

  • 最小权限原则

文件遍历

  • 遍历到文件目录扫面文件

防御

  • 路径规范化、验证过滤、白名单机制、最小权限规则
  • 获取绝对路径getAbsolutePath()

植入类安全漏洞防御

XSS(前端漏洞)

  • Web页面插入恶意JS、钓鱼实现
防御
  • 过滤验证(白名单)、设置http头部
  • 输出的内容进行编码
  • 使用安全的前端框架

储存型XSS

  • 储存型Xss不会直接将恶意代码响应至前端浏览器进行渲染执行,先存储在数据库等介质中。

  • 为了防止储存型XSS攻击,开发人员应该对用户输入进行适当的过滤和转义,以防止恶意脚本被存储和执行。最好的做法是采用内容安全策略(CSP)来限制页面加载的资源和脚本,以及对用户输入进行严格的验证和过滤。这样可以有效地防止储存型XSS攻击。

文件上传

  • WebShell脚本文件

  • 上传恶意文件,自动执行

  • 直接拿下服务器

防御
  • 不能仅仅使用前端进行校验,需要在后端校验

  • 文件名称校验

  • 文件内容校验

  • 路径隔离,限制文件的执行权限

CSRF

  • 敏感的操作需要考虑CSRF攻击

  • 跨站请求伪造,受害者已经登陆的状态下

  • 常见的盗号、钓鱼页面、钓鱼网站

防御
  • 请求带上token
  • 同源检测

会话固定

  • 向用户传递一个一致的会话标识,引导用户使用该会话标识进行身份认证
防御
  • 随机会话id
  • 会话绑定
  • 安全的会话管理
  • 双重认证

其它类型安全漏洞

越权访问

  • 数据权限问题
防御
  • 校验输入
  • 权限最小化
  • 双重身份认证、强密码多因素
  • 关键操作日志,定期审计和监控

口令爆破

  • 需要使用强密码
  • 密码策略
  • 登录失败限制
  • 多因素身份认证
  • 安全监控

安全编码规范

输入验证和数据净化

  • 净化非受信数据(从外界来的数据),比如使用sql预编译防止sql注入问题
  • 避免目录遍历漏洞
  • 不要记录未净化过的数据,避免产生数据污染
  • 文件或者网络IO两端使用兼容的编码

业务安全漏洞

逻辑漏洞

逻辑混淆
  • 不充分的逻辑设计
  • 复杂的业务逻辑
  • 修改和维护中的逻辑变更:注释、交接
流程乱序
  • 业务流程执行的顺序与预期不符。产生原因有:并发操作
数据重放
  • 缺乏合适的身份认证和授权机制
  • 不安全的通信协议

规避方案

  • 充分的需求和设计,确保程序的逻辑结构清晰,合理,并充分考虑各种肯能的情况和分支
  • 逻辑注释和文档
  • 代码审查和测试

第三方安全

  • 漏洞和脆弱性
  • 依赖管理
  • 恶意注入和后门

缓解方案

  • 审查和评估
  • 定期更新
  • 依赖管理
  • 漏洞披露和响应
  • 安全编码实践

如何安全的开发

安全培训

  • 确保开发团队接受适当的安全培训,了解常见的安全漏洞和攻击方式,以及如何编写安全代码。

安全设计

  • 在软件设计阶段就考虑安全问题,例如通过威胁建模和安全架构评估来识别和减少安全风险。

安全编码

  • 遵循安全编码最佳实践,例如输入验证、输出编码、访问控制、错误处理和加密等。

代码审查

  • 在代码提交前进行代码审查,以识别和修复安全漏洞。可以使用静态代码分析工具来帮助识别漏洞。

安全测试

  • 在开发过程中进行安全测试,包括渗透测试和安全评估,以识别和修复安全漏洞。

定期更新和补丁

  • 定期更新和修补软件和系统,以修复已知的安全漏洞和错误。

访问控制

  • 实施严格的访问控制策略,限制对敏感数据和系统的访问。

加密

  • 使用加密技术保护敏感数据,例如使用 SSL/TLS 加密网络通信,使用加密算法保护存储的数据。

事件监控和响应

  • 实施事件监控和响应计划,以识别和响应安全事件。

持续改进

  • 定期评估和改进安全实践,以适应新的安全威胁和技术趋势。

总之,提高开发安全需要全面的安全实践,包括安全培训、安全设计、安全编码、代码审查、安全测试、定期更新和补丁、访问控制、加密、事件监控和响应、以及持续改进。
加密

  • 使用加密技术保护敏感数据,例如使用 SSL/TLS 加密网络通信,使用加密算法保护存储的数据。

事件监控和响应

  • 实施事件监控和响应计划,以识别和响应安全事件。

持续改进

  • 定期评估和改进安全实践,以适应新的安全威胁和技术趋势。

总之,提高开发安全需要全面的安全实践,包括安全培训、安全设计、安全编码、代码审查、安全测试、定期更新和补丁、访问控制、加密、事件监控和响应、以及持续改进。

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

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

相关文章

从 Solana 课程顺利毕业获得高潜岗位,他的 Web3 开发探险之旅

在 TinTinLand 的学习,给了我入门 Web3 行业的 Entry Ticket,我认为这张 Ticket 是非常宝贵和重要的。 Alex,一位从某家知名研究所毅然辞职,踏入Web3世界的年轻开发者,凭借在 TinTinLand 推出的「Solana 黑客松先锋训练…

上海交通大学、中科大 开源镜像站停止 Docker Hub 仓库镜像支持后的可用替代源

上海交通大学 Linux 用户组发布公告: 即时起中止对 Docker Hub 仓库的镜像。Docker 相关工具默认会自动处理失效镜像的回退,如果对官方源有访问困难问题,建议尝试使用其他仍在服务的镜像源。 源加速地址 有网友表示百度的 Docker Hub 加速器…

我在高职教STM32——GPIO入门之蜂鸣器

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 字符串筛选排序(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

DoIP——step1:车辆连接

文章目录 前言一、连接要求DoIP边缘节点的接口要求/测试仪的接口要求DoIP边缘节点物理层要求DoIP边缘节点数据链路层要求测试设备数据链路层要求二、物理连接激活线三、线束要求前言 采用DoIP对车辆进行诊断时可选择有线或者无线的方式完成外部诊断设备和车辆的连接,接下来将…

Petalinux由于网络原因产生的编译错误(1)-autoconf-native2.69-r11

1 没有找到合适的staging package: 如果编译过程中报如图 所示“libxau-1_1.0.9”或者所示“autoconf-native2.69-r11”包找不到或者错误,这是因为网络不好或者提供的网址无法访问的原因,导致编译时需要的暂存包无法获取。 我们可以到xilinx…

【Android面试八股文】你能说一说什么是代理模式?静态代理和动态代理分别是什么?如何实现?

文章目录 一、代理模式1.1 代理模式概念1.2 代理模式的目的1.3 代理模式的三个角色1.4 代理模式的两种实现方式1.5 代理模式的优点1.6 代理模式的缺点1.7 适用场景 二、静态代理2.1 静态代理2.2 动态代理2.2.1 JDK动态代理2.2.2 CGLIB动态代理2.2.3 JDK 动态代理和 CGLIB 动态代…

Web应用安全测试-权限缺失

Web应用安全测试-权限缺失 Flash跨域访问 漏洞描述:flash跨域通信,依据的是crossdomain.xml文件。该文件配置在服务端,一般为根目录下,限制了flash是否可以跨域获取数据以及允许从什么地方跨域获取数据。举个例子: 1、…

教育界杂志教育界杂志社教育界编辑部2024年第13期目录

教育视界 “三全育人”视角下九年一贯制学校德育体系构建与探索 练成; 2-4 儿童审美视角下小学文言文教学的实践研究 张瑾; 5-7 打造初中美术创作教学的“四度空间” 叶才红; 8-10 探索之窗《教育界》投稿:cn7kantougao163.com “屋顶农场”项目迭代…

FinalReference 如何使 GC 过程变得拖拖拉拉

本文基于 OpenJDK17 进行讨论,垃圾回收器为 ZGC。 提示: 为了方便大家索引,特将在上篇文章 《以 ZGC 为例,谈一谈 JVM 是如何实现 Reference 语义的》 中讨论的众多主题独立出来。 FinalReference 对于我们来说是一种比较陌生的 R…

python安装包中的.dist-info作用

在使用pip install 包名 进行python第三方库的时候,安装完库之后通常会出现一个库名,还有一个.dist-info的文件,以安装yolov8所依赖的框架ultralytics为例,成功安装后会出现以下文件夹: 第一个ultralytics是概该框架包…

python实践笔记(三): 异常处理和文件操作

1. 写在前面 最近在重构之前的后端代码,借着这个机会又重新补充了关于python的一些知识, 学习到了一些高效编写代码的方法和心得,比如构建大项目来讲,要明确捕捉异常机制的重要性, 学会使用try...except..finally&…

做恒指交易一定要有耐心

1、记住成为赢利的交易者是一个旅程,而非目的地。世界上并不存在只赢不输的交易者。试着每天交易的更好一些,从自己的进步中得到乐趣。聚精会神学习技术分析的技艺,提高自己的交易技巧,而不是仅仅把注意力放在自己交易输赢多少上。…

轮式机器人Swiss-Mile城市机动性大提升:强化学习引领未来城市物流

喜好儿小斥候消息,苏黎世联邦理工学院的研究团队成功开发了一款革命性的机器人控制系统,该系统采用强化学习技术,使轮式四足机器人在城市环境中的机动性和速度得到了显著提升。 喜好儿网 这款专为轮腿四足动物设计的控制系统,能…

eNSP学习——配置基于接口地址池的DHCP

目录 主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、基于接口配置 DHCP Server 功能 3、配置基于接口的DHCP Server租期/DNS服务器地址 4、配置 DHCP Client 主要命令 //查看DHCP地址池中的地址分配情况 display ip pool//开启D…

【源码】2024运营版多商户客服系统/在线客服系统/手机客服/PC软件客服端

带客服工作台pc软件源代码,系统支持第三方系统携带参数打开客服链接,例如用户名、uid、头像等 支持多商家(多站点)支持多商家(多站点),每个注册用户为一个商家,每个商家可以添加多个…

30.保存游戏配置到文件

上一个内容:29.添加录入注入信息界面 以 29.添加录入注入信息界面 它的代码为基础进行修改 效果图: 首先在我们辅助程序所在目录下创建一个ini文件 文件内容 然后首先编写一个获取辅助程序路径的代码 TCHAR FileModule[0x100]{};GetModuleFileName(NUL…

嵌入式学习记录6.17(qss练习)

一思维导图 二.练习 widget.h #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);this->setWindowFlag(Qt::FramelessWindowHint);this->setAttribute(Qt:…

Java多线程设计模式之保护性暂挂模式

模式简介 多线程编程中,为了提高并发性,往往将一个任务分解为不同的部分。将其交由不同的线程来执行。这些线程间相互协作时,仍然可能会出现一个线程等待另一个线程完成一定的操作,其自身才能继续运行的情形。 保护性暂挂模式&a…

数据治理服务解决方案(35页WORD)

方案介绍: 本数据治理服务解决方案旨在为企业提供一站式的数据治理服务,包括数据规划、数据采集、数据存储、数据处理、数据质量保障、数据安全及合规等方面。通过构建完善的数据治理体系,确保企业数据的准确性、完整性和一致性,…