>  기사  >  Java  >  Java에서 SQL 주입을 방지하는 방법은 무엇입니까?

Java에서 SQL 주입을 방지하는 방법은 무엇입니까?

藏色散人
藏色散人원래의
2019-04-30 09:37:3612355검색

SQL 주입은 가장 일반적인 네트워크 공격 방법 중 하나입니다. 공격을 위해 운영 체제의 BUG를 사용하지 않고, 프로그래밍 중 프로그래머의 과실을 대상으로 하며, 계정 없이 로그인하거나 심지어 변조할 수도 있습니다. 데이터베이스와 함께.

Java에서 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 Tutorial"

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

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