【网站架构】网站系统怎么才是安全的?安全验收?等保、网络安全、SQL盲注、https、鉴权

news2025/1/12 8:46:08

大家好,欢迎来到停止重构的频道。

本期我们讨论网站系统的安全性

安全的重要性不言而喻,大部分安全问题确实是安全扫描后根据指引修改就可以了。

但是仍有一些问题修改起来是特别麻烦的,这些问题会严重影响上线时间。

本期我们的重点不在于罗列所有的安全问题,而是重点讨论哪些安全问题必须在开发阶段就解决的,让项目上线或交付更加顺滑。

我们按这样的顺序讨论 :

  1. 网站系统怎么才算是安全的 

  2. 网络安全

  3. 环境安全 

  4. 系统安全 

  5. 其他

网站系统怎么才算是安全的 

网站系统怎么才算是安全的,有很多提供安全测试服务的公司,它们会做渗透测试、安全扫描等工作,并出具安全评分报告。

只要评分及格,就算是安全的。

当然,这些安全报告会有各自的标准,但国内项目的话,一般采用等保(信息安全等级保护)的标准。

一般达到三级或以上要求就可以了,很多项目也是以等保三级作为安全性的验收标准,如果对安全测试没有概念的小伙伴,可以看一下等保三级的提纲。

安全问题虽然很庞杂,但实际上也就是网络、环境、系统这三大类。

网络安全

首先是网络安全。

一般大型网站都需要做网络区域隔离,为了防止攻击者直接操控服务器。

需要把系统应用、数据都放在不通公网的隔离区。

请求都需要通过统一的网关程序才能反向代理进网络隔离区。

对于系统调用公网第三方服务的问题,则需要额外增加对外代理作为调用总出口

 对外代理的话,可以使用Nginx的四层代理,一个端口对应一个第三方服务,虽然七层代理可以一个端口对应所有的https请求,但是实际应用下来不太稳定。

网络安全另外一个比较重要的点是https。

对于https,其实并不复杂,不需要整个网站的各个服务都换成https,只需要保证网关那一层配置https即可,系统内部的调用仍然使用http。

当然其他网络安全问题也十分重要,如调用白名单等,但总的来说就是一开始是限制网络调用的,根据功能的扩展,逐步增加网络策略即可。

网络安全的相关问题会一定程度上阻碍发布、调试难度,所以一般只对生产环境部署就可以了。

但是这一套网络环境的部署最好在项目初期就考虑搭建,因为项目后期再弄的话可能来不及,毕竟实际问题会很多。

环境安全 

接下来是环境安全。

环境安全指的是操作系统、基础软件的安全,如系统版本、系统漏洞修复、基础软件漏洞修复、密码安全等。

当然,大部分的环境安全问题根据安全扫描结果整改就可以了。

但是有一点是需要关注的,对于基础软件版本,如MySQL等。最好在一开始调研清楚将要使用的软件版本有没有安全问题,或者该版本是否允许使用,不要等到被安全扫描的时候才发现该版本不能使用。

虽然基础软件的升降级是很简单的,但是版本之间的功能是存在差别的,那么就可能存在基础软件升降级后一些业务功能不可用的情况,而重新测试会浪费很多成本

系统安全

最后是系统安全,系统安全是我们开发的软件的安全问题

这些问题一般都需要在开发阶段就处理好的,不然这些问题的整改可能是灾难性的

系统安全比较重点的问题有几点:一是接口权限;二是SQL盲注;三是敏感信息加密;四是日志

接口鉴权是比较容易忽略的,比如用户登录检查、用户角色权限检查等。

其中需要特别说明的是,如果涉及到用户id、用户权限、用户信息的参数,最好是通过session信息强制获取覆盖,不然鉴权会沦为摆设。

接口鉴权不要想着后面再追加,在开发的时候就需要做好

因为后期对几百几千个接口一次性加追加权限的话,是一个特别蠢的事情,对于接口权限问题,我们会在后续的《单点登录系统架构设计》中详细讨论。

另外是SQL盲注,SQL盲注一般采用MyBatis等数据库操作框架就能解决的

SQL盲注的基础原理是通过传入单引号(‘)扩展既定的SQL语句,以实现获取或修改原定功能以外信息,

比如:检查账号密码的SQL语句是这样的,如果没有防止SQL盲注,当用户在密码中输入带单引号的字符串,则可以绕过密码校验。

三是敏感信息加密,一些敏感信息是需要加密的,如密码、某些身份信息等。

这些信息在数据库中存储的是加密后的信息,为了防止即使数据泄漏,不知道具体加密/解密算法的话,这些数据也没有意义。

四是日志,日志在很多问题上我们都是重点提及的,因为日志确实非常重要。

在开发调试时,可以初步定位问题,在运营问题上,也可以判断是否发生过用户所描述的操作,在本期的安全问题上,就可以通过日志分析信息盗取、篡改的手段。

关于日志的详细规则,可以参考往期《后端规整化》。

其他

除了以上提到的安全点,可能还需要考虑一些防止洪水攻击、熔断等安全机制,但其实这些问题基本上接入安全堡垒机WAF就可以解决了。

安全堡垒机的作用是监控请求,如果是非法请求,则拦截,至于非法请求的界定策略,一般是可以配置的。

如果条件允许的话,安全堡垒机的接入最好不要等到上线前再接入

因为安全堡垒机可能会对某个业务请求误判,这些接口都需要进行特殊处理的,如果在开发阶段就发现的话,则不会在上线前临时多处很多问题。

总结

以上提到的安全问题只是较为通用的问题,根据具体的业务系统,可能会有特殊的安全问题,如直播平台会有直播流防盗等问题,这些问题最好也在开发阶段考虑。

安全性是网站系统整体架构的最后一个问题,截止到本期,我们已经把大型网站架构的所有关键问题都已经讨论完毕。

接下来,我们会介绍一些具体系统的架构设计过程,部分产品也会同步推出,敬请期待。

 

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

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

相关文章

共享购模式简单又好玩,撑起市场的半边天,推动实体产业改造上级

在2022年1月18日,国家发展改革委等七部局下发《促进消费实施方案》的通知,确立了”消费送积分”的新形式。该政策的出台,表明了政府探索实施全国绿色消费积分制度,鼓励地方结合实际建立本地绿色消费积分制度,以兑换商品…

S3 Drive支持以及FIPS 140-2兼容性

S3 Drive支持以及FIPS 140-2兼容性 在Windows Arm64上运行-添加了在Microsoft Windows for Arm64上的功能。无需额外下载,安装程序将为您的系统选择正确的驱动程序和库。 现在符合FIPS 140-2。 现在,您可以使用新的CacheOnlyFiles设置阻止上载临时(或其他…

基于高分辨率时频分析的单通道地震数据自动噪声衰减方法(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 记录的地震信号常常被噪声破坏。本文使用了一种基于高分辨率时频分析的单通道地震数据自动噪声衰减方法。同步压缩是一种时频重…

MySQL——保证主从一致

binlog 可以用来归档,也可以用来做主备同步,备库执行了 binlog 就可以跟主库保持一致。 MySQL 主备的基本原理 如图 1 所示就是基本的主备切换流程。 在状态 1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库&#xff…

Java安全--CC4

CC4 环境提一小嘴: CC4利用的是commons-collections4,所以我们需要导入新的依赖,地址:https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.0 我们先来关注一下利用链: 后半段是一样的&am…

本地运行好好的 Java 程序, 一发布到线上就报错的灵异事件终于让我碰到了

说明 本文涉及的相关软件版本如下: mybatis 3.4.xHotSpot JDK1.8Windows 11IDEA 2022.3 先看一段 mybatis 相关的代码 今天一个朋友丢给我如下一段代码: 然后跟我讲为什么本地是好好的, 发布到线上执行就报错。 BlogMapper.java public…

【python机器学习】K-Means算法详解及给坐标点聚类实战(附源码和数据集 超详细)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~ 人们在面对大量未知事物时,往往会采取分而治之的策略,即先将事物按照相似性分成多个组,然后按组对事物进行处理。机器学习里的聚类就是用来完成对事物进行分组的任务 一、样本处理 聚类…

技术原理|Hologres Binlog技术原理揭秘

作者:张高迪(花名杳天),Hologres研发。 同传统MySQL数据库,Hologres支持Hologres binlog,记录数据库中所有数据的变化事件日志。通过Hologres binlog,可以非常方便灵活的实现数据之间的复制、同…

“电池黑马”瑞浦兰钧增速惊人,动储双起飞

撰稿 | 多客 来源 | 贝多财经 12月14日,“电池黑马”瑞浦兰钧能源股份有限公司(以下简称“瑞浦兰钧”)向港交所主板提交上市申请,摩根士丹利和中信证券为其联席保荐人。至此,国内动力电池装机量排名前十的企业均已上…

DB Optimizer Multiplatform SQL评测和调优IDE

DB Optimizer Multiplatform SQL评测和调优IDE 增加了对最新版本Log4j的支持。 改进了分析会话功能,可提前提醒用户可能有问题的SQL。 DB Optimizer可以快速发现、诊断和优化性能较差的SQL。DBOptimizer使DBA和开发人员能够在整个开发生命周期中优化SQL性能&#xf…

合并多个有序数组

合并多个有序数组题目描述思想代码实现变形题目题目描述 我们现在有多个已经有序的数组,我们知道每个有序数组的元素个数和总共的有序数组的个数,现在请设计一个算法来实现这多个有序数组的合并(合并成一个数组); 例如&#xff1a…

Chrome浏览器可以用ChatGPT了?

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 最近这段时间想必 和我一样,都被chatGPT刷屏了。 在看到网上给出的一系列chatGPT回答问题的例子和自己亲自体验之后,的确发现它效果非常令人惊艳。 chatGPT的火热程度在开源社…

turbo编码原理

一、原理 Turbo的编码器由两个并行的分量编码器组成。分量编码器的选择一般是卷积码。在Turbo码中,输入序列在进入第二个编码器时须经过一个交织器 ,用于将序列打乱。两个编码器的输出共同作为冗余信息添加到信息序列之后,对抗信道引起的错误…

实战SupersetBI报表之数据集图表配置

上集已经安装完Superset -实战SupersetBI报表之安装 本集开始讲解 根据数据集配置图表:以简单的员工花名册 为例 1、首先配置数据库 上次安装的时候也提到过 如果服务之间都是docker 安装。必须保证能够通信 下面根据实际参数配置即可 当我们配置好数据库之后 就可以…

如何保证TCP传输的可靠性

重传机制,流量控制,拥塞控制 1.重传机制: 序列号确认应答 当发送端的数据到达接收主机的时候,接收端主机会返回一个确认应答消息,表示已经收到消息 当数据发生丢包时,用重传机制解决 重传机制有好几种…

【Anime.js】——用Anime.js实现动画效果

目录 目标: ​编辑1、确定思路 2、创建网格 3、设置随机位置 4、创建时间轴动画 完整代码: 目标: 实现自动选点,对该点进行先缩小后放大如何回到比其他点大一点的状态,并以该点从外向内放大 1、确定思路 2、创建网…

第12届嵌入式蓝桥杯真题-停车场管理系统的设计与实现

目录 实验要求: 实验思路: 核心代码: (1)主函数 (2)lcd显示 (3)按键函数 (4)LED显示函数 (5)业务处理函数 &…

深度理解取模

深度理解取模一.取模概念二.负数取模三.进一步的解释四.取模和取余是一样的吗?一.取模概念 二.负数取模 上面的代码一目了然就不再多少啦,但如果是负数取模又该怎么办呢? 以上a/b-3是很好理解的,那为什么取模后的值是-1呢&#xf…

useEffect 和 useLayoutEffect 的源码解读

文章目录useEffect 和 useLayoutEffect 的源码解读useEffect源码解读mountEffectImplpushEffectupdateEffectImpl疑惑:useLayOutEffect源码解读mountLayoutEffectupdateLayoutEffect总结useEffect 和 useLayoutEffect 的源码解读 useEffect 文件在 packages/react…

毕业设计-基于深度学习的交通标识识别-opencv

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…