SQL防注入 | 您所在的位置:网站首页 › sql防止注入最简单的方式 › SQL防注入 |
SQL 防注入
SQL 注入原理: SQL 注入攻击是黑客对数据库进行攻击的常用手段之一。随着 B/S 模式 应用开发的发展, 使用这种模式编写应用程序的程序员也越来越多。 但是由于程序员的水
平 及经验也参差不齐, 相当大一部分程序员在编写代码的时候, 没有对用户输入数据的合法性 进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代
码,根据程序返回 的结果,获得某些他想得知的数据,这就是所谓的 SQL Injection ,即 SQL 注入。 SQL 注入是 从正常的 WWW 端口访问,而且表面看起来跟一般的 Web 页面访问没什么区别,所以目前 市面的防火墙都不会
对 SQL 注入发出警报,如果管理员没查看服务器日志的习惯,可能被 入侵很长时间都不会发觉。但是, SQL 注入的手法相当灵活,在注入的时候会碰到很多意外
的情况,需要构造巧妙的 SQL 语句,从而成功获取想要的数据。
java 防 SQL 注入 , 最简单的办法是杜绝 SQL 拼接 ,SQL 注入攻击能得逞是因为在原有 SQL 语句中加入了新的逻辑,如果使用 PreparedStatement 来代替 Statement 来执行 SQL 语句, 其后只是输入参数, SQL 注入攻击手段将无效,这是因为 PreparedStatement 不允许在不同 的插入时间改变查询的逻辑结构 , 大部分的 SQL 注入已经挡住了 , 在 WEB 层我们可以过滤用 户的输入来防止 SQL 注入。
一、在通用防注入类添加防注入函数
public class StringUtil { public static boolean sql_inj(String str)
{ String inj_str = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master |truncate|char|declare|;|or|-|+|,"; String inj_stra[] = split(inj_str,"|"); for (int i=0 ; i =0) {
return true; } }
return false; } } jsp 中调用该函数检查是否包函非法字符
|
CopyRight 2018-2019 实验室设备网 版权所有 |