开源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、学习使用,适合课堂演示、作业、入门练习。

相关推荐
白帽攻防录12 小时前
SRC 挖洞:V8 Turbofan 沙箱逃逸深度复盘,CVE-2026-6307 一根长矛怎么刺穿 Chrome 两道边界
网络·chrome·安全·网络安全·浏览器安全
菩提小狗13 小时前
每日安全情报报告 · 2026-10-05
网络安全·漏洞·cve·安全情报·每日安全
sbjdhjd13 小时前
云安全 | Docker 容器逃逸复盘(一):从隔离边界到运行时链路,如何确认自己身处容器
网络安全·docker·云原生·容器·kubernetes·云计算·云安全
XLYcmy14 小时前
PDF 论文处理器 — 技术报告文档
数据库·python·网络安全·pdf·embedding·dify·rag
杭州领祺科技1 天前
27 号令横向隔离落地清单:储能边缘计算网关 ≠ 电力专用网闸,算电协同中心安全分区/纵向加密/SPDnet 怎么配
人工智能·安全·网络安全·边缘计算·储能·电力·电力监控
菩提小狗1 天前
每日安全情报报告 · 2026-10-04
网络安全·漏洞·cve·安全情报·每日安全
迪康coolmu1 天前
屏幕水印与防拍照落地:从水印类型到泄密溯源的完整配置
运维·网络·安全·网络安全·数据安全
Seraphina361 天前
DVWA(SQL Injection-High,XSS Reflected-Medium,XSS Stored-Medium)
数据库·经验分享·sql·网络安全·xss
在猴站学算法2 天前
(SQL注入学习)无回显的报错注入(Error-Based)
学习·网络安全·sql注入·ctf竞赛
sogw-三叶草️2 天前
House of Orange
网络安全·pwn·堆·二进制安全