前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误。其实sql 注入漏洞就是一个。作为一个菜鸟小程序员,我对sql 注入的东西了解的也不深入,所以抽出时间专门学习了一下。现在把学习成果分享给大家,希望可以帮助大家学习。下面我们就来看一下。 一、什么是sql 注入呢? 所谓 SQL 注入,就是通过把SQL 命令插入到 Web 表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP 会员密码大多就是通过 WEB表单递交查询字符暴出的,这类表单特别容易受到 SQL 注入式攻击.当应用程序使用输入内容来构造动态sql 语 句 以访 问 数 据 库 时,会发 生 sql注入攻击。如果代 码使用存 储 过程,而 这些存 储 过程作为包 含 未 筛 选 的用户 输入的字符串来传 递,也会发 生 sql 注入。 黑 客通过 SQL 注入攻击可以拿 到网站数 据 库 的访 问 权 限 ,之 后 他 们就可以拿 到网站数 据 库 中所有的数 据 ,恶意的黑 客可以通过 SQL 注入功 能篡 改 数 据 库 中的数 据甚 至 会把数 据 库 中的数 据 毁 坏 掉 。做 为网络 开 发 者 的你 对这种 黑 客行为恨 之 入骨 ,当然 也有必 要了解一下SQL 注入这种 功 能方 式的原 理 并 学会如何 通过代 码来保 护 自 己 的网站数 据 库 二 、sql 注入产 生 原 因 sql注 入 攻 击 是 利 用 是 指 利 用 设 计 上 的 漏 洞 ,在 目 标 服 务 器 上 运 行 Sql语 句 以 及 进 行 其 他 方 式 的 攻 击 , 动 态 生 成 Sql 语 句 时 没 有 对 用 户 输 入 的数 据 进 行 验 证 是 Sql 注 入 攻 击 得 逞 的 主 要 原 因 。 对 于 java 数 据 库 连 接JDBC 而 言 , SQL 注 入 攻 击 只 对 Statement 有 效 , 对 PreparedStatement是 无 效 的 , 这 是 因 为 PreparedStatement 不 允 许 在 不 同 的 插 入 时 间 改 变 查询 的 逻 辑 结 构 。 如 验 证 用 户 是 否 存 在 的 SQL 语 句 为 : 用 户 名 'and psw d='密 码 如 果 在 用 户 名 字 段 中 输 ...