sql 키워드 스 크 립 트 정규 표현 식 검사 방법

1680 단어 sql정규 표현 식
sql 조합 과정 에서 특수 한 외부 매개 변 수 를 sql 구문 에 조합 해 야 할 때 가 있 습 니 다.외부 에서 들 어 오 는 매개 변수 가 sql 키 워드 를 포함 하고 있 는 지 확인 하지 않 으 면 해커 는 시스템 이라는 구멍 을 이용 하여 sql 스 크 립 트 문 구 를 주입 하여 데이터 베 이 스 를 삭제 하거나 데이터 자 료 를 훔 칩 니 다.
sql 키워드 스 크 립 트 검사 정규 표현 식

\b(and|exec|insert|select|drop|grant|alter|delete|update|count|chr|mid|master|truncate|char|declare|or)\b|(\*|;|\+|'|%)
자바 언어

/**
 *     sql  ,  true    
 * @param obj
 * @return
 */
public static boolean containsSqlInjection(Object obj){
  Pattern pattern= Pattern.compile("\\b(and|exec|insert|select|drop|grant|alter|delete|update|count|chr|mid|master|truncate|char|declare|or)\\b|(\\*|;|\\+|'|%)");
  Matcher matcher=pattern.matcher(obj.toString());
  return matcher.find();
}
유닛 테스트

@Test
public void testContainsSqlInjection(){
  boolean b1=SqlUtils.containsSqlInjection("and nm=1");
  assertEquals("b1  true",true,b1);
  boolean b2=SqlUtils.containsSqlInjection("niamsh delete from ");
  assertEquals("b2  true",true,b2);
  boolean b3=SqlUtils.containsSqlInjection("stand");
  assertEquals("b3  false",false,b3);
  boolean b4=SqlUtils.containsSqlInjection("and");
  assertEquals("b4  true",true,b4);
  boolean b5=SqlUtils.containsSqlInjection("niasdm%asjdj");
  assertEquals("b5  true",true,b5);
}
총결산
위 에서 말 한 것 은 소 편 이 소개 한 sql 키워드 스 크 립 트 검사 정규 표현 식 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기