首頁 常見問題 能夠有效應對SQL注入攻擊的方法是什麼

能夠有效應對SQL注入攻擊的方法是什麼

Jul 01, 2020 am 10:33 AM
sql注入攻擊

能够有效应对SQL注入攻击的方法是:PreparedStatement(预编译语句集)。预编译语句集内置了处理SQL注入的能力,我们只需要使用它的setxxx方法传值即可。

能夠有效應對SQL注入攻擊的方法是什麼

1、(简单又有效的方法)PreparedStatement

(推荐学习:mysql教程

采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。

使用好处:

(1)代码的可读性和可维护性.

(2)PreparedStatement尽最大可能提高性能.

(3)最重要的一点是极大地提高了安全性.

原理:

sql注入只对sql语句的准备(编译)过程有破坏作用,而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对sql语句进行解析、准备,因此也就避免了sql注入问题。

2、使用正则表达式过滤传入的参数

要引入的包:

import java.util.regex.*;
登入後複製

正则表达式:

private String CHECKSQL = “^(.+)\\sand\\s(.+)|(.+)\\sor(.+)\\s$”;
登入後複製

判断是否匹配:

Pattern.matches(CHECKSQL,targerStr);
登入後複製

下面是具体的正则表达式:

检测SQL meta-characters的正则表达式 : /(\%27)|(\')|(\-\-)|(\%23)|(#)/ix

修正检测SQL meta-characters的正则表达式 : /((\%3D)|(=))[^\n]*((\%27)|(\')|(\-\-)|(\%3B)|(:))/i

典型的SQL 注入攻击的正则表达式 : /\w*((\%27)|(\'))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix

检测SQL注入,UNION查询关键字的正则表达式 : /((\%27)|(\'))union/ix(\%27)|(\')

检测MS SQL Server SQL注入攻击的正则表达式: /exec(\s|\+)+(s|x)p\w+/ix

等等…..

3、字符串过滤

比较通用的一个方法:

(||之间的参数可以根据自己程序的需要添加)

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 < inj_stra.length ; i++ ){
if (str.indexOf(inj_stra[i])>=0){
return true;
}
}
return false;
}
登入後複製

4、jsp中调用该函数检查是否包函非法字符

防止SQL从URL注入:

sql_inj.java代码:

package sql_inj;
import java.net.*;
import java.io.*;
import java.sql.*;
import java.text.*;
import java.lang.String;
public class sql_inj{
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=inj_str.split("\\|");
for (int i=0 ; i < inj_stra.length ; i++ ){
if (str.indexOf(inj_stra[i])>=0){
return true;
}
}
return false;
}
}
登入後複製

以上是能夠有效應對SQL注入攻擊的方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1677
14
CakePHP 教程
1431
52
Laravel 教程
1333
25
PHP教程
1278
29
C# 教程
1257
24
ao3鏡像網址夸克 ao3鏡像地址夸克入口 ao3鏡像網址夸克 ao3鏡像地址夸克入口 May 15, 2025 pm 06:42 PM

1、ao3鏡像網址夸克☜☜☜☜☜點擊進入。 2、ao3鏡像地址夸克入口☜☜☜☜☜點擊進入。 3、AO3(檔案我們自己的)是一個非營利性的粉絲小說和同人小說存檔網站,於 2008 年 10 月 29 日啟動。 4、AO3 是一個由粉絲創辦、為粉絲運營的網站,致力於保護粉絲創造的作品,並為同人小說作家提供一個無審查的環境。

ao3夸克入口官網 ao3官方網站夸克入口 ao3夸克入口官網 ao3官方網站夸克入口 May 15, 2025 pm 06:45 PM

1、ao3官方網站夸克入口☜☜☜☜☜點擊保存。 2、ao3夸克入口官網☜☜☜☜☜點擊保存。 【ao3】1、AO3(Archive of Our Own)是一個龐大的、由粉絲創作的在線作品存檔網站。 2、它主要收錄同人作品,涵蓋各種各樣的媒體,從書籍和電影到電視劇和遊戲,幾乎無所不包。 3、AO3 的內容豐富,類型多樣,能夠滿足不同讀者的需求。