跳到主要内容

网络安全基础入门

安全的目标不是“绝对不被攻击”,而是在成本可控的前提下,降低风险、减少损失、提升发现和恢复能力。

学习安全要同时理解攻击和防守,但所有练习都必须在授权环境中进行。

一、安全的三个核心目标

经典安全目标是 CIA:

目标含义示例
机密性不该看到的人看不到密码、合同、用户隐私
完整性数据不被未授权篡改订单金额、配置文件
可用性系统需要时能正常使用网站、支付、接口服务

安全建设就是围绕这三个目标做防护、检测和恢复。

二、常见安全风险

风险说明
弱口令密码简单或重复使用
越权访问普通用户访问管理员数据
SQL 注入把恶意 SQL 拼进查询
XSS在页面中执行恶意脚本
CSRF借用户身份发起伪造请求
文件上传漏洞上传木马或恶意文件
命令执行用户输入被当作系统命令执行
信息泄露日志、错误页、配置暴露敏感信息
依赖漏洞第三方组件存在已知漏洞
配置错误端口暴露、权限过大、默认密码

三、安全防护的基本思路

1. 最小权限

账号、服务、数据库、文件都只给完成任务所需的最小权限。

2. 输入不可信

所有来自用户、外部接口、文件、消息队列的数据都要验证。

3. 分层防御

不要依赖单点防护。应用、网络、主机、数据库、日志都要有安全措施。

4. 默认拒绝

没有明确允许的访问默认拒绝,尤其是后台、管理接口和内网服务。

5. 可审计

重要操作必须记录日志,包括谁、什么时间、做了什么、结果如何。

四、Web 安全基础

1. SQL 注入

风险代码常见形态:

SELECT * FROM users WHERE name = '${userInput}'

防护方法:

  • 使用参数化查询;
  • 不拼接 SQL;
  • 限制数据库账号权限;
  • 对输入做格式校验;
  • 不把详细 SQL 错误返回给用户。

2. XSS

XSS 是把恶意脚本注入页面。

防护方法:

  • 输出时做 HTML 转义;
  • 富文本使用白名单过滤;
  • 设置 Content Security Policy;
  • Cookie 设置 HttpOnly;
  • 不直接渲染不可信 HTML。

3. CSRF

CSRF 是诱导用户在已登录状态下发起非本意请求。

防护方法:

  • 使用 CSRF Token;
  • 检查 Origin / Referer;
  • Cookie 设置 SameSite;
  • 重要操作二次确认。

4. 文件上传

防护方法:

  • 限制文件类型和大小;
  • 检查文件真实内容;
  • 上传目录不允许执行脚本;
  • 文件重命名;
  • 使用对象存储隔离;
  • 图片重新编码处理。

五、系统和服务器安全

基础加固:

  • 使用 SSH Key 登录;
  • 禁止 root 直接登录;
  • 关闭不必要端口;
  • 配置防火墙;
  • 定期更新系统补丁;
  • 给服务使用独立低权限用户;
  • 敏感文件权限最小化;
  • 日志集中保存;
  • 定期检查异常进程和登录记录。

常用检查方向:

who
last
ps aux
ss -tulnp
df -h
find /tmp -type f

六、密码和认证

密码安全原则:

  • 密码不能明文存储;
  • 使用强哈希算法;
  • 加盐;
  • 限制登录失败次数;
  • 支持 MFA;
  • 敏感操作重新验证。

常见认证方式:

方式说明
Session服务端保存登录态
JWT令牌中包含声明信息
OAuth2第三方授权登录
API Key服务间调用凭证
MFA多因素认证

七、密码学基础

常见概念:

概念作用
哈希数据摘要,不可逆
对称加密加密和解密用同一个密钥
非对称加密公钥加密,私钥解密或签名
数字签名验证身份和完整性
TLSHTTPS 的安全基础

注意:不要自己发明加密算法,使用成熟库和标准协议。

八、安全日志和监控

应该重点记录:

  • 登录成功和失败;
  • 权限变更;
  • 密码修改;
  • 管理员操作;
  • 文件上传;
  • 支付和订单变更;
  • 高频失败请求;
  • 异常 IP;
  • 重要配置变更。

告警示例:

  • 短时间大量登录失败;
  • 后台接口异常访问;
  • 同一账号异地登录;
  • 服务器出现异常进程;
  • 关键文件被修改;
  • 出站流量异常。

九、应急响应流程

发生安全事件时,先止损,再分析。

注意:

  • 不要立刻删除所有文件,可能破坏证据。
  • 先保存日志、进程、网络连接、可疑文件。
  • 重要系统优先隔离网络或切换备用环境。
  • 修复后要检查是否留下后门。

十、学习路线

建议顺序:

  1. 网络基础:HTTP、DNS、TCP/IP。
  2. Linux 基础:权限、进程、日志、服务。
  3. Web 开发基础:前端、后端、数据库。
  4. Web 安全:SQL 注入、XSS、CSRF、上传漏洞。
  5. 身份认证和权限模型。
  6. 密码学基础。
  7. 安全测试工具。
  8. 日志分析和应急响应。
  9. 云安全和容器安全。
  10. 安全开发生命周期。

十一、入门练习

可以在本地授权环境中练习:

  • 搭建一个简单登录系统;
  • 加入密码哈希和登录失败限制;
  • 给接口加权限校验;
  • 演示 SQL 注入风险,再改成参数化查询;
  • 演示 XSS 风险,再做输出转义;
  • 配置 HTTPS;
  • 记录安全日志。

十二、常见误区

  • 以为用了 HTTPS 就安全。
  • 只做登录,不做权限校验。
  • 后台接口没有访问控制。
  • 把密钥写进代码仓库。
  • 依赖库长期不更新。
  • 日志里打印密码、Token、身份证号。
  • 没有备份和恢复演练。

总结

安全建设的基本路径是:

入门阶段先掌握 Web 安全、Linux 安全、认证授权和日志监控,再逐步深入漏洞挖掘、云安全和安全工程体系。