当前位置: 首页 > news >正文

note22:应用安全编码规范培训

DDoS 

Distributed Denial of Service

攻击者利用公开代理服务器向目标网站发起大量的访问,访问内容包括不存在的页面、网站大文件、动态页面等,达到了使用较少攻击资源造成目标网站访问缓慢甚至瘫痪的目的。

0day漏洞

零日漏洞(zero-day)又叫零时差攻击,是指被发现后立即被恶意利用的安全漏洞。通俗地讲,即安全补丁与瑕疵曝光的同一日内,相关的恶意程序就出现。这种攻击往往具有很大的突发性与破坏性。

sql注入

使用参数化查询

使用全局过滤器统一处理攻击字符

对不可信来源的参数采用占位符的方式编码

xml实体注入

使用开发语言提供的禁用外部实体的方法

为 XML 代理、解析器或读取器设置安全属性

open重定向

使用白名单校验重定向的url地址

对用户提交的参数进行严格校验和约束

跨站攻击类: 反射型

对用户提交的参数进行严格校验和约束

对提交到前端的参数进行编码转义输出

对Cookie添加HTTP Only属性

不安全的随机数

避免使用弱伪随机数生成器

避免使用可预测的种子值

使用标准、公认的安全算法和库

水平越权&垂直越权

水平:用户abc

垂直:跨角色

Shiro RCE漏洞

Shiro的记住我(RememberMe)功能。

当用户在登录时勾选"记住我",Shiro会获取用户的身份信息(Principal);为了在下次访问时能识别用户,Shiro会将这个身份信息对象序列化;然后,使用一个加密密钥(AES算法)对序列化后的数据进行加密;最后,将加密后的数据进行Base64编码,作为rememberMe Cookie的值返回给浏览器

当用户下次访问时,Shiro会执行相反的流程:Base64解码 -> AES解密 -> 反序列化,从而恢复出用户的身份信息。

漏洞就出在AES加密的密钥上,在Apache Shiro 1.2.4及之前的版本中,这个AES加密的密钥是硬编码在源码中的,且是一个公开的值 (kPH+bIxk5D2deZiIxcaaaA==)。

这意味着:攻击者可以自己构造一个恶意的对象(通常是一个能执行命令的"Gadget Chain"),用这个公开的密钥加密,然后伪装成rememberMe Cookie发送给服务器。当服务器收到这个Cookie并进行解密和反序列化时,恶意的代码就会被执行,导致远程代码执行(RCE)。
 

(1)安全需求分析:

1、应用系统桌面、移动运维终端、柜面受理设备等界面展示增加水印

2、3级及以上的数据导出应使用加密或脱敏等技术手段防止数据泄露

3、敏感级及以上数据的操作应当进行日志记录,包括操作时间、用户标识、行为类型等。

(2)安全架构方案:

1、互联网应用系统与内网系统之间调用应在内网之间进行,严禁从互联网通过反向代理直接访问内网系统。

2、应采取加密等措施防止会话令牌在传输、存储过程中被窃取。

(3)安全机制设计:

在前端(含客户端、小程序、WEB、第三方系统等)与服务器之间建立安全的信息传输通道,例如VPN、使用安全版本的 TLS或 IPSec 等安全传输协议。
(4)编码规范:

1、应用系统应对返回信息进行审核和过滤,防止因此造成敏感信息的泄露。审核内容包括:是否包含敏感信息(包括且不限于配置信息、版本信息、网络拓扑信息、密码、密钥口令、用户隐私信息等)等。

2、应用系统返回信息遵循最小和业务必需原则,禁止返回非必需的数据信息。

3、应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。

4、 对所管控的互联网应用系统,应采取代码安全走查、代码白盒扫描等方式对源代码进行安全审计。

http://www.dtcms.com/a/300783.html

相关文章:

  • 从零开始学习Dify-基于MCP的智能旅行规划助手上(八)
  • Windows10系统使用Cmake4.1.0构建工具+Visual Studio2022编译Opencv4.11教程
  • Jangow靶机通关教程
  • DAY21-二叉树的遍历方式
  • Gradio全解8——ChatInterfaceChatbot:聊天界面类与聊天机器人(3)——ChatInterface的多模态功能与附加输入输出
  • 9-大语言模型—Transformer 核心:多头注意力的 10 步拆解与可视化理解
  • 新手向:MySQL配置性能优化
  • unity开发中Hash、Queue、LinkedList简单介绍
  • 算法竞赛阶段二-数据结构(37)数据结构动态链表list
  • QT开发---网络编程下
  • 《C++》STL--string详解(上)
  • Linux文件理解,基础IO理解
  • 怎样让阿里云服务器(centos)有界面
  • 网络协议:计算机世界的“交通规则“与“社交礼仪“
  • i节点学习
  • Qt 分裂布局:QSplitter 使用指南
  • C语言——————学习笔记(自己看)
  • 基于多智能体的任务管理系统架构设计与实现
  • 北大区块链技术与应用 笔记
  • [STM32][HAL]stm32wbxx 超声波测距模块实现(HY-SRF05)
  • 【基础完全搜索】USACO Bronze 2022 Open - 谎言的人数Counting Liars
  • 元宇宙背景下治理模式:自治的乌托邦
  • JavaSE-String类
  • 【Ollama】大模型本地部署与 Java 项目调用指南
  • Wireshark TS | 发送数据超出接收窗口
  • C++核心编程学习-- 类和对象--继承
  • PROFINET转CAN通讯协议转换速通汽车制造
  • 简单题目之学校组织运动会
  • 【通识】线性代数(Linear Algebra)
  • 【C++】论如何封装红黑树模拟实现set和map