Day01-系列文介绍、规划

前言

Hello 大家好我是 Larry,去年休息一次後今年决定再度参战,这也是我第三次参加铁人赛了。

虽然参加铁人赛真的很痛苦,会有长达一个多月茶不思、饭不想、连做梦都在想文章要写什麽,但每次结束後都很庆幸当初有参加,好像自己完成了什麽不得了的大事XDD。而且一想到有这麽多人跟我一样每天都在赶 12 点就觉得热血沸腾,所以今年也是鼓起勇气报名了~

目标

今年的系列文「从以卵击石到坚若磐石之 Web API 安全性全攻略」标题很长XD,主要是想跟大家分享如何打造一个高安全性的 API server,以及在实作 API 的商业逻辑时,有哪些该注意的眉眉角角

除了讲述抽象的概念之外,为了让大家更了解怎麽在实战中应用,我也会用 Node.js 跟 Go 写一些范例(因为这两个我比较熟XD)

而其他程序语言的话,因为各语言在概念上都是相通的,所以即便你是用 Python/Java/Rust 架 API Server 也没问题,只要看完文章、有了大观念之後稍微 Google 一下,很快便能查到怎麽实作,所以一样可以读这系列的文章~

先备知识

真要说其实也没有什麽先备知识XD,只要知道怎麽用 Node.js/Python/Go 这类的後端语言启动一个 HTTP server 就好

若是对於怎麽架 HTTP server 还不太熟悉,我也帮各位找了几篇教学文,只要看完应该就知道怎麽做了~

文章规划

要打造一个高安全性的 HTTP server 从来就不是一件容易的事,因为各个环节都有可能出现漏洞,因此我打算把整个系列分成以下几个部分来谈:

  • 入口管制(4 Days)

    一个安全的 API server 就像大楼的警卫,需要对进入的各种人员、资料做管制。所以这部分会谈谈对於从外部进入 API server 的资料该做哪些检查,才可以尽量提高服务器的安全性

  • 流量限制(5 Days)

    为了避免 API server 被少数恶意使用者用流量灌爆,这部分会聊聊几种常见的流量限制策略,以及示范他们要如何实作,让你的 server 不会那麽轻易被打挂。

  • HTTP Headers(3 Days)

    随着网路上的 Web 应用程序越来越多,为了提升安全性,现在跟安全性有关的 HTTP header 也是多到记不得,所以我会花个几天讲讲一些常见的 HTTP header,并且教你如何设定这些 headers ~

  • Cookie(3 Days)

    虽然 Cookie 也是 HTTP Header 的一部分,但我觉得 cookie 应该要自成一个段落,在这个段落中我会详细说明 cookie 的属性如 httpOnly、secure 等等,让大家更了解 cookie 相关的安全议题

  • Session 管理(2 Days)

    平常三不五时就会在程序讨论区看到「JWT 要放在 cookie 还是 localStorage?」或是「Session ID 要多长才够安全?」这类的问题,所以希望这个段落可以把这些跟 session、token 有关的安全性一次讲完,让读者对於 session 管理有更全面的认识

  • 密码怎麽存(4 Days)

    怎麽安全的保管使用者的密码一直以来都是个很重要的议题,所以这边会讲讲保存密码、修改密码、忘记密码这些功能应该怎麽做,让你把密码相关的安全知识一次补足

  • 资料库(3 Days)

    资料库可以说是一家公司的命脉,资料没了那就什麽都没了,所以这部分会谈谈怎麽让你的资料库更安全,包括权限设定、injection 等等都会在这边谈到

  • Docker(4 Days)

    自从进入大容器时代後,Docker、K8s 已经逐渐成为开发、测试及部署时不可或缺的工具,因此这边会讲讲怎麽写出安全的 Dockerfile、使用 Docker 的注意事项等等跟容器安全相关的 best practice

小结

这系列的内容大概就是这样,明天就要正式开始了~希望大家会喜欢这个系列

如果内容上有任何问题或是哪里讲解不够清楚、范例太少等等,也很欢迎各位在留言区跟我说,我会尽量参考大家的建议做改进的~


Starbugs 队友系列文传送门


<<:  建立第一笔NoSQL资料

>>:  【Day 01】C 语言简介

专案是实现使命、愿景,及战略的具体努力!

分享一些多年来专案管理及工作的心得: 专案是实现使命、愿景,及战略的具体努力。使命感、远见与作梦的能...

Day31. 单例模式

本文同步更新於blog Singleton Pattern 确保一个类只有一个实例,并提供一个全局...

JavaScript. promise 非同步观念

promise 经常与 Ajax 共同谈论,但这篇文章会以 promise 为主;promise 是...

初学者跪着学JavaScript-Day1

Hi~各位好,我是超级新手, 才刚学 JavaScript 二个月,目前 JavaScript 等级...

Powershell 入门之管道和文件重定向

今天我们就来一起看看 powershell 中的管道符,使用 “|” 表示. 我们先来看两个命令: ...