이 기사의 예에서는 PHP에서 SQL 주입 방지를 간단하게 구현하는 방법을 설명합니다. 참고용으로 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다.
여기에는 주로 php와 mysql의 조합에 대한 필터링이 많지 않습니다.
일반적인 주입 방지를 위해서는 PHP의 addlashes 기능을 사용하면 됩니다.
다음은 복사한 코드입니다.
PHP 코드:
$_POST = sql_injection($_POST); $_GET = sql_injection($_GET); function sql_injection($content) { if (!get_magic_quotes_gpc()) { if (is_array($content)) { foreach ($content as $key=>$value) { $content[$key] = addslashes($value); } } else { addslashes($content); } } return $content; }
시스템을 구축하는 경우 다음을 사용할 수 있습니다. 다음 코드도 복사되었습니다.
PHP 코드:
function inject_check($sql_str) { return eregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str); // 进行过滤 } function verify_id($id=null) { if (!$id) { exit('没有提交参数!'); } // 是否为空判断 elseif (inject_check($id)) { exit('提交的参数非法!'); } // 注射判断 elseif (!is_numeric($id)) { exit('提交的参数非法!'); } // 数字判断 $id = intval($id); // 整型化 return $id; } function str_check( $str ) { if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否打开 $str = addslashes($str); // 进行过滤 } $str = str_replace("_", "\_", $str); // 把 '_'过滤掉 $str = str_replace("%", "\%", $str); // 把 '%'过滤掉 return $str; } function post_check($post) { if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否为打开 $post = addslashes($post); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤 } $post = str_replace("_", "\_", $post); // 把 '_'过滤掉 $post = str_replace("%", "\%", $post); // 把 '%'过滤掉 $post = nl2br($post); // 回车转换 $post = htmlspecialchars($post); // html标记转换 return $post; }
더 많은 PHP 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제인 "php 프로그래밍 보안 자습서"를 확인할 수 있습니다. , "php 보안 필터링 기술 요약", "PHP 작업 및 연산자 사용법 요약", "PHP 네트워크 프로그래밍 기술 요약", "PHP 기본 문법 소개 튜토리얼", "PHP Office 문서 기술 요약(워드, 엑셀 포함) , access, ppt)" , "php 객체지향 프로그래밍 입문 튜토리얼", "php 문자열(문자열) 사용법 요약", "php mysql 데이터베이스 조작 입문 튜토리얼" 및 "php 공통 데이터베이스 조작 기술 요약"
이 기사가 PHP 프로그래밍에 도움이 되는 모든 사람에게 도움이 되기를 바랍니다.
위 내용은 SQL과 PHP 내용을 포함하여 PHP에서 SQL 주입 방지를 간단하게 구현하는 방법을 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.