>백엔드 개발 >PHP 문제 >PHP에서 SQL 주입을 방지하는 방법

PHP에서 SQL 주입을 방지하는 방법

(*-*)浩
(*-*)浩원래의
2019-09-19 11:06:374983검색

데이터베이스 쿼리시 SQL 인젝션을 방지해야 합니다

PHP에서 SQL 주입을 방지하는 방법

구현 방법:

PHP에는 데이터베이스 쿼리 문 등을 특정 문자 앞에 추가해야 하는 경우 자체적인 방법이 있습니다. 백슬래시. 이러한 문자는 작은따옴표('), 큰따옴표("), 백슬래시() 및 NUL(NULL 문자)입니다. (권장 학습: PHP 프로그래밍에서 마스터까지)

string addslashes ( string $str )//该函数返回一个字符串

Example

<?php
$str = "Is your name O&#39;reilly?";

// 输出: Is your name O\&#39;reilly?
echo addslashes($str);
?>

ThinkPHP는 자동으로 보안을 제공합니다. 문자열 유형 데이터의 경우 ThinkPHP는 escape_string 처리(real_escape_string, mysql_escape_string)를 수행합니다.

SQL 삽입 문제를 효과적으로 방지하려면 공식 권장 사항:

쿼리 조건에 배열을 사용하는 것이 더 안전한 방법입니다. 문자열 쿼리 조건을 사용해야 하며, 전처리 메커니즘을 사용해야 합니다.

자동 확인 및 자동 완성 메커니즘을 사용하여 애플리케이션별 필터링을 맞춤설정하세요.

환경이 허용하는 경우 PDO 방법을 사용하고

쿼리를 사용해 보세요. 조건 전처리

이 방법은 쿼리 문에 자리 표시자를 넣은 다음 배열 형식으로 매개 변수를 전달하는 것과 유사합니다

예:

$Model->where("id=%d and username=&#39;%s&#39; and xx=&#39;%f&#39;",array($id,$username,$xx))->select();

$Model->where("id=%d and username=&#39;%s&#39; and xx=&#39;%f&#39;",$id,$username,$xx)->select();

위 내용은 PHP에서 SQL 주입을 방지하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.