PHP get_magic_quotes_gpc 함수 사용법 소개

WBOY
풀어 주다: 2016-07-29 09:01:30
원래의
916명이 탐색했습니다.

재인쇄: 링크를 열려면 클릭하세요

PHP에서 Magic_quotes_gpc 함수의 역할은 게시, 가져오기, 쿠키 데이터와 같이 사용자가 요청한 데이터를 결정하고 구문 분석하는 것입니다. 이스케이프 문자 " "를 추가하여 이러한 데이터가 프로그램, 특히 특수 문자로 인한 오염으로 인해 데이터베이스 문에서 치명적인 오류를 일으키지 않도록 합니다.

magic_quotes_gpc=On의 경우, 입력 데이터에 작은따옴표('), 큰따옴표("), 백슬래시(), NUL(NULL 문자) 등

문자가 포함되어 있으면 추가됨 상단 백슬래시가 필요합니다. 이 옵션이 꺼져 있으면 addlashes 함수를 호출하여 문자열에 이스케이프를 추가해야 합니다.

이 옵션도 켜져 있어야 하기 때문입니다. 이 옵션은 PHP6에서 삭제되었습니다. 모든 프로그래밍은 Magic_quotes_gpc=Off에서 수행되어야 합니다. 이러한 환경에서 사용자의 데이터가 이스케이프되지 않으면 결과는 단순히 프로그램 오류가 아닙니다. 데이터베이스 주입 공격의 위험이 있으므로 앞으로는 서버를 PHP6으로 업데이트해야 하고 프로그램이 제대로 작동하지 않는 것을 피하기 위해 더 이상 모든 사람이 이 설정에 의존해서는 안 됩니다.


magic_quotes_gpc=On일 때 get_magic_quotes_gpc() 함수는 1을 반환합니다

magic_quotes_gpc=Off일 때 get_magic_quotes_gpc() 함수는 0을 반환합니다


따라서 이 get_magic_quotes_gpc() 함수의 기능은 환경 변수 Magic_quotes_gpc의 값을 가져오는 것임을 알 수 있습니다. PHP6에서는 Magic_quotes_gpc 옵션이 삭제되었으므로 PHP6에서는 이 함수가 no라고 생각합니다.


php는 addlashes 기능 사용 여부를 결정할 수 있도록 get_magic_quotes_gpc 기능이 활성화되어 있는지 확인합니다.


데이터베이스 공격을 방지하는 올바른 방법

function SQLString($c, $t){
 $c=(!get_magic_quotes_gpc())?addslashes($c):$c;
 switch($t){
  case 'text':
   $c=($c!='')?"'".$c."'":'NULL';
   break;
  case 'search':
   $c="'%%".$c."%%'";
   break;
  case 'int':
   $c=($c!='')?intval($c):'0';
   break;
 }
 return $c;
}
로그인 후 복사


function check_input($value)
{
// 去除斜杠
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// 如果不是数字则加引号
if (!is_numeric($value))
{
$value = “‘” . mysql_real_escape_string($value) . “‘”;
}
return $value;
}
$con = mysql_connect(“localhost”, “hello”, “321″);
if (!$con)
{
die(‘Could not connect: ‘ . mysql_error());
}
// 进行安全的 SQL
$user = check_input($_POST['user']);
$pwd = check_input($_POST['pwd']);
$sql = “SELECT * FROM users WHERE
user=$user AND password=$pwd”;
mysql_query($sql);
mysql_close($con);
?>
로그인 후 복사

이상으로 관련 내용을 포함하여 php get_magic_quotes_gpc 함수의 사용법을 소개하였습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!