教材学习——系统安全基础
系统安全的两层含义:①以系统思维应对安全问题;②应对系统所面临的安全问题
4.1系统安全概述
时代在不断发展,系统安全也在不断演变:从二十世纪四十年代的第一台计算机,五十年代的第一个操作系统,六十年代的第一个分时系统CTSS、第一个安全操作系统Adept-50、ARPANET,七十年代的访问监控器、访问验证机制、安全核、可信计算基、Internet兴起,八十年代的WWW出现,九十年代的Internet普及、系统安全拓展到网络互连场景到二十一世纪的安全生态系统。
为了了解系统,为了提升系统,为了确保系统的安全,对系统的观察必不可少,而系统的安全性需要以系统化的视野去观察,由此观察系统的方法有:①自外观察法:观察者位于系统之外对系统进行观察,通常是通过观察系统的输入和输出来分析系统的行为;②自内观察法:观察者位于系统之内对系统进行观察,此时,观察者属于系统的一个组成部分,通常是通过观察系统的外部环境来分析系统的行为。
还原论和整体论都可以从生活中的实例去理解,例如将一幅画还原为多个像素点,将许多个分散的像素点整体看来是一幅画。
4.2系统安全原理
为确保系统的安全,我们不仅在虚拟的网络上要注意一些不可提及的信息点,在现实生活中也要有相应的原则。同时为了防患于未然,对于潜伏在暗处的未知威胁,我们有必要进行各种威胁应急处理的训练,而威胁建模就是为防御者提供系统地分析应采取的控制或防御措施的机会。
对于系统安全按中的安全管理,把安全理念贯穿到系统日常管理工作的全过程,从系统管理的角度提升系统的安全性。
4.3系统安全结构
硬件防篡改解决方案:在硬件中实现 SHA1 和 strcmp 等功能。
cookie:览器与服务器交互时,由服务器建立,由浏览器保存的一些赋值信息,而在后续交互时,浏览器会把这些信息返还给服务器,使服务器了解浏览器的过往行为。cookie中可能包含敏感信息,如用户名、口令、信用卡号码等
教材学习中遇到的问题和解决过程
- 问题:对于SQL注入攻击和XSS攻击的防御措施有哪些?
- 解决方法:通过网络搜索或询问AI去进一步了解
SQL注入攻击的防御措施
1.严格区分普通用户与管理员用户的权限。如果页面查询用户使用的是root,注入时被带入了drop table,drop database等语句,后果将不堪设想
2.采用参数化语句。使用参数而不是将用户输入变量嵌入到SQL语句中,可以杜绝大部分的SQL注入式攻击。
3.加强对用户输入的验证。测试用户输入内容的大小和数据类型,强制执行适当的限制与转换。有助于防止缓冲区溢出攻击和注入式攻击
4.使用存储过程。这个要根据业务实际而定
5.多使用SQL Server自带的安全参数,SQL Server数据库中提供了Parameters集合,这个集合提供了类型检查和长度验证的功能。
6.实现多层验证
7.必要的情况下使用专业的漏洞扫描工具来寻找可能被攻击的点
8.设置陷阱账号。一个是普通管理员帐号,一个是防注入的帐号。将防注入的账号设置的很象管理员,如 admin,以制造假象吸引软件的检测,而密码是大于千字以上的中文字符,迫使软件分析账号的时候进入全负荷状态甚至资源耗尽而死机。
(出自CSDN博主「Hehuyi_In」原文链接:https://blog.csdn.net/Hehuyi_In/article/details/107976593)
XSS功绩的防御措施
1.确定性类型字段加强校验:当一些字段是确定性类型的,在输入内容时应按照相应规则加强校验,例如手机号、邮箱等信息。
2.HTML 模版转义:对于前后端一体的应用,拼接 HTML 模版这些也是必不可少的,应对 HTML 模版做好充分转义。一些常用的模版引擎:pug、ejs 这些默认都带有转义功能,来防止 XSS 攻击。
3.设置 httpOnly:禁止用户读取 cookie,就算注入恶意代码,也无法读取 cookie 信息冒充用户提交信息。
4.过滤和转码:关键字符做过滤或转码,如果是过滤,直接过滤掉指定的关键词,页面就不会展示了。如果是转码,不会过滤掉但也不会让其执行。
5.CSP:一种内容安全策略,需要在服务端设置。
基于AI的学习
回答问题
AI的评价