开源SQL注入可视化演示项目|GitHub Pages+Netlify双平台免费部署教程

开源SQL注入可视化演示项目|GitHub Pages+Netlify双平台免费部署教程

文章目录

  • [开源SQL注入可视化演示项目|GitHub Pages+Netlify双平台免费部署教程](#开源SQL注入可视化演示项目|GitHub Pages+Netlify双平台免费部署教程)

一、项目简介

最近做了一个纯教学向 SQL注入对比演示开源项目 ,专门用来新手入门理解:拼接SQL漏洞 vs 参数化查询防御

项目特点:

  • ✅ 双表单对比:不安全拼接表单 + 安全参数化表单

  • ✅ 实时展示最终执行SQL语句,直观看懂注入原理

  • ✅ 支持经典Payload:admin' --' OR '1'='1

  • ✅ 完整原理讲解页面,适合学习、答辩、作业演示

  • ✅ 同时支持 GitHub Pages + Netlify 双平台免费在线部署

开源地址:https://github.com/dxiangwiki/sql-inject-demo

线上演示地址(双平台已全部部署完成):

二、项目功能与核心原理

1. 不安全表单(存在SQL注入漏洞)

模拟后端直接字符串拼接SQL,也是绝大多数注入漏洞的根源。

原始拼接模板:

Plain 复制代码
SELECT * FROM user WHERE username='${username}' AND password='${password}'

经典Payload 1:admin' --

拼接后:

Plain 复制代码
SELECT * FROM user WHERE username='admin' -- ' AND password='xxx'

原理 :单引号闭合前面SQL,-- 注释后续所有密码校验语句,直接绕过登录。

经典Payload 2:' OR '1'='1

构造永真条件,无论账号密码对错,永远登录成功。

2. 安全表单(参数化查询防御)

采用标准防御方案:参数化预编译 SQL ,使用 ? 占位符。

Plain 复制代码
SELECT * FROM user WHERE username=? AND password=?

核心关键点:

用户输入永远只作为普通字符串数据,不会被解析为SQL语法,单引号、注释符全部失效,彻底杜绝注入。

3. 前端模拟执行逻辑(教学设计)

本项目前端通过 JS 模拟 SQL 条件解析,将 SQL 的 AND / OR 转换为 JS 的 && / ||,同时识别 SQL 注释,完美复现真实注入效果,适合学习演示,不依赖后端也能跑通所有漏洞场景。

三、双平台免费部署方案(Pages + Netlify)

本项目最终采用 仓库根目录部署,彻底解决跳转、缓存、路径错乱问题,两个平台地址干净、无跳转、可直接访问首页。

1. GitHub Pages 部署配置

设置路径:仓库 Settings → Pages

  • 部署分支:main

  • 部署目录:Root(根目录)

优势:免费、稳定、适合静态教学页面展示。

2. Netlify 部署配置(重点避坑)

很多人遇到:部署后自动跳转、地址栏带/public、缓存不更新

最终稳定正确配置:

  • Build command:留空(不执行构建)

  • Publish directory:. (根目录部署)

  • 部署分支:main

解决卡顿/缓存不更新:

后台 Deploys → Trigger deploy → Deploy project without cache 清缓存重部署。

四、踩坑总结(全网通用静态页部署经验)

坑1:public目录导致双平台配置不一致

早期用 public 存放页面,Netlify 需要配置 public,GitHub Pages 需要跳转文件,导致地址跳转、维护两份代码。

最终最优解 :页面全部移到仓库根目录,统一部署,一份代码双平台通用。

坑2:Netlify 缓存导致改代码不生效

同一 commit 哈希会复用旧构建产物,改配置不刷新页面,必须清缓存部署。

坑3:SQL AND 关键字导致正常账号登录失败

前端模拟SQL条件时,SQL的 AND 不能直接用于JS,必须替换为 &&,否则正常账号密码报错、注入反而成功。

五、本地后端环境(拓展)

项目附带完整 Node+Express+MySQL 后端代码,可本地搭建真实漏洞环境:

  1. 创建 testdb 数据库与 user 表

  2. 插入测试账号 admin/123456

  3. 安装依赖 npm i express mysql2

  4. 启动 node server.js

可真实复现后端 SQL 拼接漏洞与参数化防御对比。

六、总结与学习价值

这个开源项目非常适合网络安全、Web 入门学习者:

  • 直观看懂 为什么会产生SQL注入

  • 彻底理解 参数化查询为什么能防御

  • 掌握经典注入Payload原理

  • 学会 GitHub Pages + Netlify 双平台免费静态页部署

七、开源地址 & 在线演示

GitHub:https://github.com/dxiangwiki/sql-inject-demo

Pages 在线演示:https://dxiangwiki.github.io/sql-inject-demo/

Netlify 在线演示:https://sql-inject-demo.netlify.app/

欢迎 Star、fork、学习使用,适合课堂演示、作业、入门练习。

相关推荐
数据知道2 小时前
LDAP 与 AD 安全深度剖析——注入、弱绑定、权限配置错误
网络安全·密码学·哈希算法
躺柒2 小时前
读数据可视化34其他科学与艺术
网络安全·信息可视化·气象学·可视化·数据可视化·气候模型
数据知道15 小时前
加密流量分析——JA3 指纹、TLS 指纹识别与规避
网络·安全·网络安全·密码学
聚铭网络17 小时前
智能时代 网安护航 | 聚铭网络精彩亮相2026南京市网络安全宣传周活动
网络安全
爱学习的程序媛18 小时前
ICMP协议详解
网络·网络协议·网络安全·通信协议·icmp·网络运维
菩提小狗19 小时前
每日安全情报报告 · 2026-09-14
网络安全·漏洞·cve·安全情报·每日安全
三8441 天前
云安全· 01 · 云计算与云安全基础
网络安全·云计算·云安全
执念WRD1 天前
Fastjson 1.2.83 RCE 漏洞利用
网络·安全·网络安全
慧都小妮子1 天前
GB/T 44462.4-2026实施前,DataHub如何管好工业数据链路?
物联网·网络安全·数据安全·工业互联网·opc