필자는 PHP에서 준비된 구문에 대한 필요성을 보여 주려고했지만 PHP는 문자열을 양식에 전달할 때 편리하게 이상한 일을하기 때문에 약간의 문제가 발생했습니다. 내가 노력하고있어PHP 폼의 SQL 주입 위협?
성명은 "휴식"는 간단합니다 :
SELECT username FROM users WHERE username = '$username' AND password = '$password'
그러나 PHP는 자동으로 작은 따옴표를 이스케이프 때문에 실제로는 작동하지 않습니다 암호를 X' or TRUE;--
전달과 같은 일을 과에 문을집니다 :
SELECT username FROM users WHERE username = '$username' AND password = 'X\' or TRUE;--'
그리고 암호 평등 때문에 탈출 따옴표로 그대로 유지됩니다. 이 진술은 안전한 것으로 간주됩니까? 그렇지 않으면 어떻게 깨질 수 있습니까?
개인적으로 나는 주사를 피하고 데이터베이스의 암호와 비교하기 위해 개인적으로 MD5 암호를 사용합니다. 그게 나 일 뿐이야. –
@WilliamIsted : 예, 실제 응용 프로그램으로 작업 할 때 SHA-2를 사용합니다. 이것은 단지 가상의 쿼리 일뿐입니다. – Jengerer