2014-09-07 2 views
6

PHP와 MySQLi를 사용합니다. 4 HTML5 드롭 다운 선택 목록 입력이있는 간단한 양식이 있습니다. 이제 데이터베이스 준비를 위해 Prepared Statement를 사용해야합니까? SQL 주입 문제가 여전히 발생합니까? 또는 이러한 유형의 입력을 사용하는 데 다른 유형의 위험이 있습니다. 감사합니다.준비된 문을 사용해야합니까?

+1

[Google 검색]의 두 가지 결과 (https://www.google.fr/search?q=sql+injection+dropdown&ie)에도 불구하고이 질문에 어떻게 많은 상향 신호가 들었는지 나는 정말로 이해할 수 없습니다. 이미 대답하고 그 대답은 사소한 것이고 다음과 같이 요약 할 수 있습니다 : [** 결코 신뢰하지 마라.] [** 신뢰하지 마라. 사용자 입력 **] (http://stackoverflow.com/questions/2794016/what-should-every-programmer-know-about-security). –

+0

Chrome에서 선택 상자를 마우스 오른쪽 버튼으로 클릭하고 '요소 검사'를 클릭하십시오. 그런 다음 원하는 값으로 값을 변경하고 양식을 제출하십시오. – rybo111

답변

9

선택 상자를 통해 삽입 한 값은 최종 사용자가 쉽게 수정할 수 있기 때문에 여전히 주입 공격이 가능합니다.

유효성 검사 서버 측면이 좋은 경우 준비된 문없이 수행하면됩니다. 좋은으로

내가이 같은 것을 의미 :

$array = Array("all", "your", "possible", "values", "from", "Select boxes"); 
if(in_array ($_POST['selectbox'], $array)){ 
     //Mysql statements etc.... 
} 

직접 삽입 사용자 입력하는 것은 좋은 방법이 아닙니다. 최종 사용자를 신뢰해서는 안됩니다!

+0

필립에게 질문을 편집하고 답장을 보내 주셔서 감사합니다. 솔직히 말해서 텍스트 나 이메일과 같은 입력에 대해 SQL 주입을하는 것은 나에게 의미가 있지만 확인란이나 라디오와 선택 상자 같은 입력을 해킹 할 수있는 방법을 이해할 수는 없습니다. – Suffii

+0

사이트를 해치려는 사람 : 선택 상자를 통해 값을 수정하는 것이 텍스트 입력 필드를 통해 입력하는 것처럼 쉽습니다. –

+0

물론 3 분 더 기다려야합니다! 대답을 – Suffii

관련 문제