다음 PHP MySQL 문이 SQL 삽입을 방지합니까?SQL 인젝션 방지
$strSQL = "SELECT * FROM Benutzer WHERE Benutzername = '".$Benutzer."' AND Password = '".md5($PW)."'";
변수] $Benutzer
및 $PW
은 사용자로부터 입력입니다.
' or 0=0 --
," or 0=0 --
,or 0=0 --
,' or 0=0 #
," or 0=0 #
,or 0=0 #
,' or 'x'='x
," or "x"="x
,') or ('x'='x
,' or 1=1--
," or 1=1--
,or 1=1--
,' or a=a--
:우리는 일반적인 SQL 주입 기술에 대한 사용자 이름과 암호를 확인하고 ,
" or "a"="a
,') or ('a'='a
,") or ("a"="a
,hi" or "a"="a
,hi" or 1=1 --
,hi' or 1=1 --
,hi' or 'a'='a
,hi') or ('a'='a
및hi") or ("a"="a
.
나는 뭔가가 부족합니까? SQL 인젝션을 방지하기 위해 다른 방법을 사용해야합니까?
여기서 오는 변수는 무엇입니까? 당신은 로그인을 건너 뛰는 것을 언급합니다. 그렇다면 쿠키로부터 변수가 나왔다는 말입니까? – robjmills
변수는 $ _POST에서오고 함수로 보내집니다. 로그인에 성공하면 Session-Var을 작성합니다. 건너 뛰는 것은 유효한 비밀번호없이 로그인하는 것을 의미합니다. - 그런데 - 너무 많은 빠른 답장을 보내 주셔서 감사합니다. – wildhaber
문자열을 추가하여 SQL이 생성되는 것을 본다면 시끄러운 소리가 울립니다. 항상 바인딩 된 매개 변수를 사용하십시오 (사용 가능한 경우). PHP의 PDO 및 MySQLi 라이브러리를 참조하십시오. – Cheekysoft