应用安全规范

news/2024/11/14 12:17:59/

1 敏感信息操作

  • 数据脱敏,例如:18711112222 -> 187****2222
  • 加密存储
  • 数据防爬,防枚举;1/3/5分钟内,单一用户访问次数限制;1天内,单一用户访问次数限制;可枚举id加密

2 权限类功能

  • 服务端需要对查看、修改等操作的操作权限进行严格校验
  • 重要的接口需要防止遍历,防止通过url参数改变查看、操作其他人信息

3 登录配置

  • 登录密码、验证码等需要限制尝试次数
  • 账号相关接口需要做人机识别处理
  • 系统预置账号不能使用弱口令,且初始密码首次登录强制求改
  • 登录账号长时间无操作需要自动退出登录

4 安全配置

  • 防止中间人等攻击,使用https
  • 应用日志需要配置记录登录操作等敏感行为
  • 不允许在配置文件、数据库、缓存中明文存放密码、key等,需要加密存储
  • 密码禁止明文传输

5 数据库操作

  • 编写的SQL必须预编译,不允许通过字符串拼接的方式合成
  • 拼接变量必须经过处理,只允许大小写字符和数字_-.字符

防御SQL注入:

  • 使用预编译

6 web安全

6.1 HTML页面渲染

  • 动态输出JSON必须对其中字符串值做XSS防御
  • 禁止向HTML页面输出未过滤或转义的用户数据

防御XSS攻击:

  • 过滤和转义
  • 内容安全策略(CSP),设置content-security-policy
  • 设置正确的content-type

6.2 Form表单提交

  • 提交必须执行CSRF过滤,设置token或校验referer
  • 使用post方式提交表单

6.3 CORS跨域

Access-Control-Allow-Origin设置白名单,防止跨域

6.4 文件上传

  • 禁止将上传文件存储在web等具有可解析功能或执行权限的目录下
  • 禁止从服务器本地读取文件传输到外部,防止被任意本地文件读取
  • 禁止使用用户指定文件的content-type
  • 需要对上传图片进行内容校验,防止恶意文件上传
  • 对外部上传文件名根据时间和MD5进行重命名

任意文件读取防御:

  • 彻底url解码
  • 路径遍历特征检测

6.5 用户输入

  • 用户请求传入参数需要做有效性验证:

  • pageSize过大导致内存溢出

  • 恶意orderby导致数据库查询慢

  • 任意重定向

  • sql注入

  • 反序列化注入

  • 正则DOS

6.6 cookie读写

  • 禁止cookie中明文写入敏感数据
  • 设置httpOnly,禁止使用js读取cookie数据

6.7 外链

页面通过超链接方式跳出页面时,必须指定rel=nooopener

6.8 防御SSRF

  • 协议白名单
  • 防止跳转
  • 正确过滤ip
  • 正确访问限制

http://www.ppmy.cn/news/1084351.html

相关文章

胆囊结石3mm严重吗(解析胆囊结石的危害和处理方法)

胆囊结石是指胆囊内形成的固体结晶,大小不一,主要由胆固醇、胆汁色素和钙盐等物质组成。胆囊结石是一种比较常见的疾病,据统计,我国胆囊结石的患病率约为5%~10%左右。那么,胆囊结石3mm严重吗?下面就来一起了解一下。 …

Redis——》实现分布式锁

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

Redis 缓存穿透击穿和雪崩

一、说明 Redis 缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对…

【sgTransfer】自定义组件:带有翻页、页码、分页器的穿梭框组件,支持大批量数据的穿梭显示。

特性&#xff1a; 表格宽度可以自定义翻页器显示控件可以自定义列配置项可以设置显示字段列名称、宽度、字段名可以配置搜索框提示文本&#xff0c;支持搜索过滤穿梭框顶部标题可以自定义左右箭头按钮文本可以设置 sgTransfer源码 <template><div :class"$opti…

【大数据实训】基于Hive的北京市天气系统分析报告(二)

博主介绍&#xff1a;✌全网粉丝6W,csdn特邀作者、博客专家、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于大数据技术领域和毕业项目实战✌ &#x1f345;文末获取项目联系&#x1f345; 目录 1. 引言 1.1 项目背景 1 1.2 项目意义 1 2.…

Mac安装Dart时,Homebrew报错 Error: Failure while executing

前言&#xff1a; 最近准备开发Flutter项目时&#xff0c;在安装环境时&#xff0c;安装Homebew时遇到了以下报错信息&#xff0c;在这里分享一下。 报错信息&#xff1a; ~ % brew tap dart-lang/dart > Tapping dart-lang/dart Cloning into /opt/homebrew/Library/Tap…

Prometheus-Rules(规则)

文章目录 一、介绍二、配置 Prometheus 使用规则文件三、 规则文件语法规则文件语法全局Recording rules(记录规则)2 Alerting rules(警报规则)3 模板化如何使用四、检查规则文件语法五、发送警报通知一、介绍 Prometheus规则是一种逻辑表达式,可用于定义有关监控数据的逻…

1921. 消灭怪物的最大数量

原题地址 解法一 排序贪心即可。思想为先计算出每一个怪兽到达城市的时间&#xff0c;然后排序&#xff0c;有小到大进行消灭&#xff0c;此时的下标可视作时间。当怪兽到达城市的时间超过或等于当前时间时&#xff0c;即已经到达了城市&#xff0c;游戏失败&#xff0c;下标…