>  기사  >  백엔드 개발  >  PHP get_magic_quotes_gpc() 함수 사용 지침

PHP get_magic_quotes_gpc() 함수 사용 지침

怪我咯
怪我咯원래의
2017-07-06 11:12:421655검색

get_magic_quotes_gpc 함수는 사용자가 제공한 데이터에 슬래시를 추가할지 여부를 결정하는 데 사용됩니다. 이는 php.ini구성 파일에 있습니다. 이 문서에서는 get_magic_quotes_gpc() 함수 설명을 소개합니다. 아래 에디터로 살펴보겠습니다

get_magic_quotes_gpc 함수는 사용자가 제공한 데이터에 슬래시를 추가할지 여부를 결정하는 데 사용됩니다. 이는 php.ini 구성 파일에 있습니다. get_magic_quotes_gpc() 함수 설명을 소개하겠습니다.

get_magic_quotes_gpc 함수 소개

PHP 시스템 함수인 PHP 환경변수 Magic_quotes_gpc의 값을 가져옵니다.

구문: ​​long get_magic_quotes_gpc(void);

반환 값: 긴 정수

이 함수는 PHP 환경 구성에서 Magic_quotes_gpc(GPC, Get/Post/Cookie) 변수의 값을 가져옵니다. 0을 반환하면 이 기능이 꺼지고, 1을 반환하면 이 기능이 켜집니다.

magic_quotes_gpc가 켜져 있으면 모든 '(작은따옴표), "(큰따옴표), (백슬래시) 및 null 문자는 자동으로 백슬래시가 포함된 오버플로 문자로 변환됩니다.

Magic_quotes_gpc 설정은 자동으로 GPC로 설정됩니다. get, post, cookie에 의해 전달된 데이터에서)는 백슬래시와 함께 추가됩니다. get_magic_quotes_gpc()를 사용하여 시스템 설정을 감지할 수 있습니다.

이 설정이 켜져 있지 않으면 addlashes() 함수를 사용하여 추가할 수 있습니다. 해당 기능은 데이터베이스 쿼리 문에서 필요할 때 특정 문자 앞에 백슬래시를 추가하는 것입니다.

이러한 문자는 작은따옴표('), 큰따옴표("), 백슬래시() 및 NUL(NULL 문자)입니다.

기본적으로 PHP 명령인 Magic_quotes_gpc가 켜져 있으며 이는 주로 모든 GET 및 POST 및 COOKIE 데이터에 사용됩니다. addlashes()를 자동으로 실행합니다.

magic_quotes_gpc에 의해 이스케이프된 문자열에는 addlashes()를 사용하지 마세요. 이 상황이 발생하면

get_magic_quotes_gpc 감지 기능을 사용할 수 있습니다.

get_magic_quotes_gpc()를 사용하여 데이터베이스 공격을 예방하는 올바른 방법

코드는 다음과 같습니다

<?php
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[&#39;user&#39;]);
$pwd = check_input($_POST[&#39;pwd&#39;]);
$sql = “SELECT * FROM users WHERE
user=$user AND password=$pwd”;
mysql_query($sql);
mysql_close($con);
?>

요약은 다음과 같습니다.

1.magic_quotes_gpc=의 경우. on,

us 데이터베이스에서 입출력되는 문자열 데이터에 대해

addslashes() 및 Stripslashes()를 수행할 필요가 없으며,

addlashes()를 수행하면 데이터가 정상적으로 표시됩니다. 이때 입력 데이터는

출력할 때 불필요한 백슬래시를 제거하기 위해 Stripslashes()를 사용해야 합니다.

2 Magic_quotes_gpc=off인 경우

addlashes()를 사용하여 입력 데이터를 처리해야 합니다. 하지만 스트립슬래시()를 사용할 필요는 없습니다

형식화된 출력

addlashes()는 백슬래시를 데이터베이스에 함께 기록하지 않기 때문에 mysql이 SQL 문 실행을 완료하는 데 도움이 됩니다

위 내용은 PHP get_magic_quotes_gpc() 함수 사용 지침의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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