소프트웨어 개발 분야에서는 SQL 주입 공격을 예방하는 것이 중요합니다. 매개변수화된 SQL 쿼리가 입력 삭제를 위한 가장 좋은 방법이지만 일부 개발자는 대체 방어 메커니즘으로 여전히 작은따옴표를 이스케이프 처리하고 사용자 입력을 작은따옴표로 묶는 방법을 사용합니다.
잘못된 탈출 기술
이 방법은 사용자 입력의 작은따옴표를 큰 작은따옴표로 바꾸고 전체 문자열을 작은따옴표로 묶는 것으로 구성됩니다.
<code>sSanitizedInput = "'" & Replace(sInput, "'", "''") & "'"</code>
이 기술의 기본 아이디어는 사용자가 입력한 모든 작은따옴표를 효과적으로 중화하여 문자열 종료를 방지한다는 것입니다. 따라서 세미콜론이나 백분율 기호와 같은 다른 문자는 문자열의 일부가 되며 명령으로 실행되지 않습니다.
주입 취약점
그러나 이 기술은 사용자 입력 자체에 큰따옴표가 포함될 수 있는 상황을 처리할 수 없습니다. 이 경우 문자열이 종료되고 나머지 입력은 SQL 명령으로 실행될 수 있습니다.
입력 예
이를 설명하려면 다음 사용자 입력을 고려하세요.
<code>'SensitiveData' HAVING AMOUNT>2000 OR ''=''</code>
실행 후 코드는 다음과 같습니다.
<code>SELECT * FROM ACCOUNT WHERE NAME='SensitiveData' HAVING AMOUNT>2000 OR ''=''</code>
이 입력은 의도된 삭제를 우회하여 SQL 쿼리에 OR 절을 성공적으로 삽입합니다.
추가 고려사항
이 이스케이프 기술에는 다음과 같은 다른 취약점이 있다는 점에 유의하는 것이 중요합니다.
모범 사례
임시 입력 삭제 기술에 의존하지 말고 다음 모범 사례를 따라 SQL 삽입을 방지하세요.
위 내용은 작은 따옴표를 이스케이프하는 것이 SQL 삽입에 대한 안정적인 방어입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!