>Java >java지도 시간 >Java에서 SQL 주입을 방지하는 방법

Java에서 SQL 주입을 방지하는 방법

青灯夜游
青灯夜游원래의
2019-05-06 17:31:144799검색

SQL 주입은 네트워크 공격의 가장 일반적인 방법 중 하나입니다. 공격을 위해 운영 체제의 버그를 이용하지는 않지만, 프로그래밍 중 프로그래머의 과실을 대상으로 합니다. 부도덕한 사용자는 SQL 허점을 이용하고 SQL 문을 사용하여 계정 없이 로그인하거나 심지어 데이터베이스를 변조합니다. 다음 기사에서는 Java에서 SQL 주입을 방지하는 몇 가지 방법을 소개합니다. 이것이 도움이 되기를 바랍니다.

Java에서 SQL 주입을 방지하는 방법

Java는 SQL 주입을 방지하는 가장 간단한 방법은 SQL 접합을 제거하는 것입니다. SQL 인젝션 공격은 원본 SQL 문에 새로운 로직을 추가하기 때문에 성공하는데, SQL 문을 실행하기 위해 SQL 문 대신에PreparedStatement를 사용하고 매개변수만 입력하면 SQL 인젝션 공격 방법은 효과적이지 않습니다.

Java에서 SQL 주입을 방지하는 방법을 살펴보겠습니다.

1 SQL 주입을 처리하는 기능이 내장된 미리 컴파일된 명령문 세트를 사용하여 값을 전달하세요.

String sql= "select * from users where username=? and password=?;
PreparedStatement preState = conn.prepareStatement(sql);
preState.setString(1, userName);
preState.setString(2, password);
ResultSet rs = preState.executeQuery();

2. 정규식을 사용하여 작은따옴표('), 세미콜론(;) 및 주석 기호(--)가 포함된 명령문을 대체하여 SQL 삽입을 방지합니다. 예:

public static String SQL(String str)
{
return str.replaceAll(".*([';]+|(--)+).*", " ");
}
userName=SQL(userName);
password=SQL(password);
String sql="select * from users where username='"+userName+"' and password='"+password+"' "
Statement sta = conn.createStatement();
ResultSet rs = sta.executeQuery(sql);

위 내용은 Java에서 SQL 주입을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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