SQL 주입 공격은 특수한 입력을 구성하여 웹 애플리케이션에 매개변수로 전달하는 것을 의미합니다. 이러한 입력의 대부분은 SQL 문을 실행하여 원하는 작업을 수행하는 것입니다. 불법 데이터가 시스템에 침입하는 것을 방지하기 위해 사용자가 입력한 데이터를 주의 깊게 필터링합니다.
관련 기술 원칙에 따르면 SQL 주입은 플랫폼 계층 주입과 코드 계층 주입으로 나눌 수 있습니다. 전자는 안전하지 않은 데이터베이스 구성이나 데이터베이스 플랫폼 취약성으로 인해 발생하며, 후자는 주로 프로그래머가 입력을 주의 깊게 필터링하지 않아 불법적인 데이터 쿼리를 실행함으로써 발생합니다. 이를 바탕으로 SQL 삽입의 원인은 일반적으로 다음과 같은 측면에서 나타납니다: ① 부적절한 유형 처리, ② 안전하지 않은 데이터베이스 구성, ④ 부적절한 오류 처리 ⑤ 잘못된 이스케이프 문자 처리 제대로 처리됨.
이 글에서는 주로 일반적인 안티 인젝션 코드를 소개합니다. 코드는 다음과 같습니다.
function jk1986_checksql() { $bad_str = "and|select|update|'|delete|insert|*"; $bad_Array = explode("|",$bad_str); /** 过滤Get参数 **/ foreach ($bad_Array as $bad_a) { foreach ($_GET as $g) { if (substr_count(strtolower($g),$bad_a) > 0) { echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='index.php';</script>"; exit(); } } } /** 过滤Post参数 **/ foreach ($bad_Array as $bad_a) { foreach ($_POST as $p) { if (substr_count(strtolower($p),$bad_a) > 0) { echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='index.php';</script>"; exit(); } } } /** 过滤Cookies参数 **/ foreach ($bad_Array as $bad_a) { foreach ($_COOKIE as $co) { if (substr_count(strtolower($co),$bad_a) > 0) { echo "<script>alert('诡异字符,请不要尝试注入本站! 作者:Jk1986 QQ:414028660');location.href='index.php';</script>"; exit(); } } } }
위 내용은 PHP SQL 안티 주입 프로그램 코드의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!