一文搞懂Web安全:安全概念/攻防案例/学习路线

Web 安全是互联网中不可或缺的一个领域,这个领域中诞生了大量的黑帽子与白帽子,他们都是安全领域的王者,在平时里,他们利用各种巧妙的技术互相博弈,时不时就会掀起一场 Web 安全浪潮,真可谓神仙打架,各显神通。

本文从一个吃瓜群众的角度,聊一聊 Web 安全的一些有趣故事。

  • 安全世界观
  • 安全攻防案例
  • 总结与思考/

安全世界观

在互联网发展之初,IE 浏览器垄断的时期,大家上网的目的都很单纯,主要通过浏览器分享信息,获取新闻。但随着互联网的不断发展发展,一个网页能做的事情越来越多,除了看新闻,我们还可以看视频、玩游戏、购物、聊天等,这些功能都大大丰富了我们的生活。

随着网页功能的逐渐增多,就开始出现了一些黑帽子,他们试图通过一些技术手段来牟取利益。在我小的时候,印象最深的就是木马病毒,它可以监控你的键盘,将你在键盘上敲打的内容发送到黑客的机器上,黑客通过分析这些内容,很容易就能得到你的游戏账号和密码。

在这之后,就诞生出了一些杀毒软件,致力于解决网络上的各种病毒,随着不断地发展,杀毒软件已经成为一台电脑必不可少的软件。

为什么会出现这样的安全问题?

安全归根到底是信任的问题,如果所有人都按照正常的流程去上网,不去谋取私利,也就没有安全问题可谈了。

安全的根本在于信任,但要让所有人互相信任谈何容易。在当前阶段,我们可以做到:持续做好安全防护,让漏洞越来越少,非法攻击越来越困难,这样就能逐渐减少黑帽子的数量,让病毒制造者越来越少。

如何做好安全

要做好安全,首先得理解安全问题的属性,前人通过无数实践,最后将安全的属性总结为安全三要素,分别为:机密性、完整性、可用性。

  • 机密性
    • 保护数据内容不被泄露。
    • 通常使用加密的方法。
  • 完整性
    • 保护数据内容是完整的、没有被篡改。
    • 通常使用数字签名的方法。
  • 可用性
    • 数据随时都能够使用。
    • 通常是在防御 DOS。

有了安全 3 要素之后,我们就可以对安全问题进行评估了。

  • 资产等级划分
    • 找出最重要的数据。
    • 找出最重要数据的宿主空间,如:在数据库里,那么数据库就得重点防御。
    • 找出数据库的宿主空间,如:在一台服务器上,那么这台服务器就得做次等防御。
    • 找出服务器的宿主空间,如:在 OSI 网络层级上,那么在网络层面就得做一般防御。
  • 威胁分析
    • 找出威胁(可能造成危害的来源)。
    • 找出风险(可能出现的损失叫做风险)。
  • 风险分析
    • 采取多标准决策分析,即:风险 = 威胁等级 * 威胁可行性。
    • 计算所有的威胁,将最终的风险进行排序,优先解决风险大的问题。
  • 确认解决方案
    • 找出不安全的实现方式,并确定解决方案。
    • 解决方案不要改变商业需求的初衷。
    • 解决方案需对用户透明,不要改变用户的习惯。

做好安全评估之后,我们就有了一份安全解决方案,后续的安全工作只需按照这个方案去做,就没有任何问题。

安全的原则

有了安全解决方案之后,我们还可以制定一些安全原则,遵守原则做事,可以让我们事半功倍。

  • 黑名单、白名单原则
    • 白名单方案指的是给安全的资源授权。
    • 黑名单方案指的是禁用不安全的资源。
    • 我们应该优先使用白名单方案,因为黑名单通常统计不完所有的不安全资源。
    • 如:XSS 攻击的方式非常多,可以通过 script、css、image 标签等,尽管你将这些标签都加入黑名单,也不能保证其他的标签都没有 XSS 的攻击隐患。
  • 最小权限原则
    • 只授予必要的权限,不要过度授权,减少出错机会。
    • 如:普通权限的 Linux 用户只能操作 ~ 文件夹下的目录,如果有人想删库跑路,在执行 rm -rf / 时,就会提示无权限。
  • 纵深防御原则
    • 这条原则类似 木桶理论,安全水平往往取决于最短的那块板。
    • 即:不要留下短板,黑帽子们往往可以利用短板为突破口,挖掘更大的漏洞。
  • 数据与代码分离原则
    • 当用户数据被当成代码执行时,混淆了数据和代码的边界,从而导致安全问题。
    • 如:XSS 就是利用这一点去攻击的。
  • 不可预测性原则
    • 这条原则是为了提高攻击门槛,有效防止基于篡改、伪造的攻击。
    • 如:数据库中使用 uuid 代替 number 型的自增主键,可以避免 id 被攻击者猜到,从而进行批量操作。
    • token 也是利用不可预测性,攻击者无法构造 token 也就无法进行攻击。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值