운영 및 유지보수 안전 SQL 주입 방어 방법은 무엇입니까?

SQL 주입 방어 방법은 무엇입니까?

Jun 29, 2020 am 09:34 AM
SQL 주입 방어

SQL注入防御的方法有:1、PreparedStatement;2、使用正则表达式过滤传入的参数;3、字符串过滤。其中,采用预编译语句集是简单又有效的方法,因为它内置了处理SQL注入的能力。

SQL 주입 방어 방법은 무엇입니까?

SQL注入防御的方法

下面针对JSP,说一下应对方法:

(推荐学习:mysql教程

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

采用预编译语句集,它内置了处理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;
}
로그인 후 복사

凡涉及到执行的SQL中有变量时,用JDBC(或者其他数据持久层)提供的如:PreparedStatement就可以 ,切记不要用拼接字符串的方法就可以了。

위 내용은 SQL 주입 방어 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Nginx 기본 보안 지식: SQL 주입 공격 방지 Nginx 기본 보안 지식: SQL 주입 공격 방지 Jun 10, 2023 pm 12:31 PM

Nginx는 빠르고 고성능이며 확장 가능한 웹 서버이며, Nginx의 보안은 웹 애플리케이션 개발에서 무시할 수 없는 문제입니다. 특히 웹 애플리케이션에 큰 피해를 줄 수 있는 SQL 주입 공격이 있습니다. 이 기사에서는 Nginx를 사용하여 SQL 주입 공격을 방지하여 웹 애플리케이션의 보안을 보호하는 방법에 대해 설명합니다. SQL 주입 공격이란 무엇입니까? SQL 인젝션 공격은 웹 애플리케이션의 취약점을 이용하는 공격 방법이다. 공격자는 웹 애플리케이션에 악성 코드를 삽입할 수 있습니다.

SQL 오류 주입에 exp를 사용하는 방법 SQL 오류 주입에 exp를 사용하는 방법 May 12, 2023 am 10:16 AM

0x01 서문 개요 편집자는 MySQL에서 또 다른 Double 데이터 오버플로를 발견했습니다. MySQL에서 함수를 얻을 때 편집자는 수학 함수에 더 관심을 가지게 되며 값을 저장하기 위한 일부 데이터 유형도 포함해야 합니다. 그래서 편집자는 어떤 함수가 오버플로 오류를 일으키는지 확인하기 위해 테스트를 실행했습니다. 그런 다음 편집자는 709보다 큰 값이 전달되면 exp() 함수가 오버플로 오류를 발생시킨다는 것을 발견했습니다. mysql>selectexp(709);+------------+|exp(709)|+---------- - -----------+|8.218407461554972

PHP는 SSTI 공격을 어떻게 방지합니까? PHP는 SSTI 공격을 어떻게 방지합니까? Jun 30, 2023 am 09:36 AM

PHP를 사용하여 SSTI(Server-SideTemplateInjection) 공격을 방어하는 방법 소개: SSTI(Server-SideTemplateInjection)는 일반적인 웹 애플리케이션 보안 취약점으로, 공격자는 템플릿 엔진에 악성 코드를 주입하여 서버가 임의 코드를 실행하도록 할 수 있습니다. 심각한 안전상의 위험을 초래합니다. PHP 애플리케이션에서 사용자 입력이 올바르게 처리되지 않으면 SST가 노출될 수 있습니다.

PHP 프로그래밍 팁: SQL 삽입 공격을 방지하는 방법 PHP 프로그래밍 팁: SQL 삽입 공격을 방지하는 방법 Aug 17, 2023 pm 01:49 PM

PHP 프로그래밍 팁: SQL 주입 공격을 방지하는 방법 데이터베이스 작업을 수행할 때 보안은 매우 중요합니다. SQL 삽입 공격은 애플리케이션이 사용자 입력을 부적절하게 처리하는 방식을 악용하여 악성 SQL 코드가 삽입 및 실행되는 일반적인 네트워크 공격입니다. SQL 주입 공격으로부터 애플리케이션을 보호하려면 몇 가지 예방 조치를 취해야 합니다. 매개변수화된 쿼리 사용 매개변수화된 쿼리는 SQL 주입 공격을 방지하는 가장 기본적이고 효과적인 방법입니다. 사용자가 입력한 값을 SQL 쿼리와 비교하여 작동합니다.

PHP를 사용하여 XSS(교차 사이트 스크립팅) 공격으로부터 보호하는 방법 PHP를 사용하여 XSS(교차 사이트 스크립팅) 공격으로부터 보호하는 방법 Jun 29, 2023 am 10:46 AM

PHP를 사용하여 XSS(교차 사이트 스크립팅) 공격을 방어하는 방법 인터넷의 급속한 발전과 함께 XSS(교차 사이트 스크립팅) 공격은 가장 일반적인 네트워크 보안 위협 중 하나입니다. XSS 공격은 주로 웹 페이지에 악성 스크립트를 삽입하여 사용자의 민감한 정보를 획득하고 사용자 계정을 도용하는 목적을 달성합니다. 사용자 데이터의 보안을 보호하려면 개발자는 XSS 공격을 방어하기 위한 적절한 조치를 취해야 합니다. 이 기사에서는 XSS 공격을 방어하기 위해 일반적으로 사용되는 몇 가지 PHP 기술을 소개합니다.

PHP SQL 주입 취약점 탐지 및 복구 PHP SQL 주입 취약점 탐지 및 복구 Aug 08, 2023 pm 02:04 PM

PHP SQL 주입 취약점 탐지 및 복구 개요: SQL 주입은 공격자가 웹 애플리케이션을 사용하여 SQL 코드를 입력에 악의적으로 주입하는 공격 방법을 의미합니다. 웹 개발에 널리 사용되는 스크립팅 언어인 PHP는 동적 웹사이트 및 애플리케이션을 개발하는 데 널리 사용됩니다. 그러나 PHP의 유연성과 사용 용이성으로 인해 개발자는 보안을 무시하는 경우가 많아 SQL 주입 취약점이 발생합니다. 이 문서에서는 PHP의 SQL 주입 취약점을 감지 및 수정하는 방법을 설명하고 관련 코드 예제를 제공합니다. 확인하다

PHP와 Vue.js를 사용하여 민감한 데이터 유출을 방지하는 애플리케이션을 개발하는 방법 PHP와 Vue.js를 사용하여 민감한 데이터 유출을 방지하는 애플리케이션을 개발하는 방법 Jul 06, 2023 am 11:01 AM

PHP 및 Vue.js를 사용하여 민감한 데이터 유출을 방지하는 애플리케이션을 개발하는 방법 오늘날의 정보화 시대에 개인과 기관의 개인 정보 보호 및 민감한 데이터는 많은 보안 위협에 직면해 있으며, 가장 일반적인 위협 중 하나는 데이터 유출입니다. 이러한 위험을 방지하려면 애플리케이션을 개발할 때 데이터 보안에 주의를 기울여야 합니다. 이 기사에서는 PHP와 Vue.js를 사용하여 민감한 데이터 유출을 방지하는 애플리케이션을 개발하는 방법을 소개하고 해당 코드 예제를 제공합니다. 보안 연결 사용 데이터 전송 시 보안 연결을 사용하십시오.

PHP를 사용하여 HTTP 응답 분할 및 HTTP 매개변수 오염 공격을 방어하는 방법 PHP를 사용하여 HTTP 응답 분할 및 HTTP 매개변수 오염 공격을 방어하는 방법 Jun 29, 2023 am 10:01 AM

PHP를 사용하여 HTTP 응답 분할 및 HTTP 매개변수 오염 공격을 방어하는 방법 인터넷이 지속적으로 발전함에 따라 네트워크 보안 문제가 점점 더 중요해지고 있습니다. HTTP 응답 분할 및 HTTP 매개변수 오염 공격은 일반적인 네트워크 보안 취약점으로, 이는 서버 공격 및 데이터 유출 위험으로 이어질 수 있습니다. 이 기사에서는 PHP를 사용하여 두 가지 형태의 공격을 방어하는 방법을 소개합니다. 1. HTTP 응답 분할 공격 HTTP 응답 분할 공격은 공격자가 특수 제작된 요청을 보내 서버가 여러 개의 독립적인 HTTP 응답을 반환하도록 하는 것을 의미합니다.

See all articles