网络安全基本知识

网络安全实战:三大常见漏洞原理与防御指南

目录

  1. 前言
  2. 密码安全存储与验证
    • 2.1 明文存储的风险
    • 2.2 哈希加盐技术
    • 2.3 Python代码实现
  3. XSS跨站脚本攻击防御
    • 3.1 攻击原理分析
    • 3.2 HTML转义与过滤
    • 3.3 Node.js防御示例
  4. SQL注入防护方案
    • 4.1 注入攻击演示
    • 4.2 参数化查询实践
    • 4.3 Java PreparedStatement示例
  5. 总结

1. 前言

在数字化时代,网络安全成为系统开发的关键环节。本文针对三种最常见的安全漏洞(密码泄露、XSS攻击、SQL注入),结合实战代码演示防御方案,帮助开发者构建更安全的Web应用。 


2. 密码安全存储与验证

2.1 明文存储的风险

  • 数据库泄露导致密码直接暴露
  • 相同密码在不同平台被撞库

2.2 哈希加盐技术

  • 使用bcrypt算法(自适应哈希算法) 
  • 每个用户独立盐值(salt) 
  • 迭代次数动态调整

2.3 Python代码实现

import bcrypt

def hash_password(password: str) -> bytes:
    # 生成随机盐(自动包含在哈希值中) 
    salt = bcrypt.gensalt(rounds=12)
    return bcrypt.hashpw(password.encode(), salt)

def verify_password(input_pwd: str, hashed_pwd: bytes) -> bool:
    return bcrypt.checkpw(input_pwd.encode(), hashed_pwd)

# 使用示例
stored_password = hash_password("user123")
print(verify_password("user123", stored_password))  # True
print(verify_password("wrongpwd", stored_password))  # False

3. XSS跨站脚本攻击防御

3.1 攻击原理分析

  • 恶意脚本注入到网页中
  • 盗取用户Cookie或会话信息
  • 类型:存储型/反射型/DOM型

3.2 HTML转义与过滤

  • 上下文敏感转义(HTML/JS/CSS) 
  • 使用白名单过滤HTML标签
  • 设置Content Security Policy(CSP) 

3.3 Node.js防御示例

const xss = require('xss');

const xssOptions = {
  whiteList: {
    a: ['href', 'title', 'target'],
    p: [],
    br: []
  }
};

// 用户输入过滤
const userInput = '<script>alert(1)</script><a href="/safe">链接</a>';
const cleanHTML = xss(userInput, xssOptions);

console.log(cleanHTML); 
// 输出: <a href="/safe">链接</a>

4. SQL注入防护方案

4.1 注入攻击演示

恶意输入:' OR 1=1; --
导致查询语句: 

SELECT * FROM users WHERE username = '' OR 1=1; -- ' AND password = '...'

4.2 参数化查询实践

  • 使用预编译语句(Prepared Statement) 
  • 永远不要拼接SQL语句
  • ORM框架自动处理

4.3 Java PreparedStatement示例

public User getUserByName(Connection conn, String name) throws SQLException {
    String sql = "SELECT * FROM users WHERE username = ?";
    try (PreparedStatement stmt = conn.prepareStatement(sql)) {
        stmt.setString(1, name); // 参数安全绑定
        ResultSet rs = stmt.executeQuery();
        // 处理结果集...
    }
}

5. 总结

安全威胁防御方案关键实践
密码泄露加盐哈希存储使用bcrypt/PBKDF2算法
XSS攻击输入过滤+输出转义白名单策略+CSP设置
SQL注入参数化查询预编译语句+ORM框架

扩展建议: 

  1. 定期进行安全审计
  2. 使用OWASP ZAP等扫描工具
  3. 保持依赖库的安全更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值