우선, 사람들이 저장 프로 시저를 사용하여 쿼리를 다시 사용하고 이스케이프 처리를 수행하도록하고 싶습니다. 그러나 많은 개발자가 mysqli_real_escape_string
은 SQL 주입을 100 % 방지 할 수 없다고 말했습니다. 누군가가 이것을 제공 할 수 있습니까? 내가 mysqli_real_escape_string
이 항상 문자열을하지만 당신은 당신이 번호를 확인하지 않는 간파 할 수있는 숫자 값에 대해 잘 될 것이라고 말할 것입니다 주제에 내 제한된 지식에서mysqli_real_escape_string이 SQL 인젝션을 막지 못하는 이유는 무엇입니까?
은 INT, 플로트, 더블, 등
입니다편집 : 중요한 것을 추가하는 것을 잊어 버렸습니다. charset이 UTF8이고 그에 따라 mysqli_set_charset이 호출되었다고 가정합니다. 내가 본 유일한 인젝션은 소수의 문자 집합에 의존합니다 (어느 것도 UTF8이 아닙니다).
(mysqli_real_escape_string 모든 바로이 자리 처리하는 데 사용할 수있는 동안) mysql_real_escape_string를 걸어 다니는 SQL 주입을() (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) –
+1, JW 링크입니다. –
링크에 의한 대답은 내 취향에 너무 화려합니다. –