>백엔드 개발 >PHP 튜토리얼 >PHP_php 팁에서 일반적으로 사용되는 보안 필터링 기능 모음

PHP_php 팁에서 일반적으로 사용되는 보안 필터링 기능 모음

WBOY
WBOY원래의
2016-05-16 20:35:121090검색

다양한 개발 프레임워크가 좋은 보안 방법을 제공하지만 여전히 보안 문제에 주의를 기울여야 합니다.
그 이유는 간단합니다. 많은 소규모 기능과 프로젝트가 프레임워크를 사용하지 않고 보안 문제를 스스로 해결해야 하기 때문입니다!

①일반적으로 사용되는 보안 기능은 무엇입니까?

코드 복사 코드는 다음과 같습니다.

mysql_real_escape_string()
추가속시()

②다음 기능의 기능:

mysql_real_escape_string() 및 addlashes() 함수는 모두 데이터에서 작은따옴표와 큰따옴표를 이스케이프합니다! SQL 인젝션을 방지하기 위한 것입니다!
그러나 mysql_real_escape_string()은 문자 집합을 고려하므로 더 안전합니다!
관련 정보를 참조한 후 결론을 내릴 수 있습니다. 현재 문자 세트가 단일 바이트인 경우 이 두 기능은 동일한 효과를 가지며 둘 다 이스케이프 필터링 역할을 할 수 있습니다. 그러나 누가 단일 바이트를 사용합니까? 특히 utf8이 점점 더 널리 사용되고 있습니다!

③기능 사용법 :

mysql_real_escape_string()과 addlashes() 두 함수의 사용법을 이해하려면 먼저 다른 두 함수의 의미를 이해해야 합니다!

get_magic_quotes_gpc() 및 get_magic_quotes_runtime(), 두 함수 간의 유사점과 차이점을 비교해 보겠습니다.

동일:

a. 둘 다 php.ini 구성 파일의 구성을 가져오는 데 사용됩니다! 켜져 있으면 1을 반환하고 꺼져 있으면 0을 반환합니다!

b. 켜면 지정된 범위 내의 데이터가 이스케이프되어 필터링됩니다!

다름:
a. 두 가지의 작업 범위는 다릅니다.
Magic_quotes_gpc는 주로 웹 클라이언트에서 작동합니다. 간단히 말해서 주로 $_GET, $_POST 및 $_COOKE의 데이터를 필터링합니다!
Magic_quotes_runtime은 주로 파일에서 읽은 데이터나 데이터베이스 쿼리에서 얻은 데이터를 필터링합니다!
b. 다양한 설정 시간:
Magic_quotes_gpc는 런타임에 설정할 수 없습니다. [이 설정은 서버를 다시 시작할 때만 읽을 수 있습니다.]
Magic_quotes_runtime은 런타임에 설정할 수 있습니다!
참고: 소위 런타임 설정은 ini_set() 함수를 통해 스크립트의 php.ini 파일에 구성을 설정할 수 있음을 의미합니다!

get_magic_quotes_gpc() 및 get_magic_quotes_runtime() 두 함수를 이해한 후에는 다음을 이해해야 합니다. php.ini 구성 파일이 Magic_quotes_runtime 및 Magic_quotes_gpc를 활성화한 것을 감지하면 지정된 범위 내의 데이터가 자동으로 전송됩니다. 꺼져 있으면 mysql_real_escape_string()[또는 필터링을 위한 추가 래시 함수]

를 사용해야 합니다.

④예:

1. Magic_quotes_gpc와 Magic_quotes_runctime의 활성화 여부에 관계없이 getdata.php 스크립트는 다음과 같이 안전하게 데이터를 전송할 수 있습니다.

코드 복사 코드는 다음과 같습니다.

If(!get_magic_quotes_gpc()) {
          foreach($_GET as $key=> &$value) {
               $value = mysql_real_escape_string($value);
}
}
If(!get_magic_quotes_runtime()) {
          $sourceDataRecord= file('./sourceData.txt');
           if($sourceDataRecord) {
foreach($sourceDataRecord as $sourceKey => &$sourceValue) {
                    $sourceValue = mysql_real_escape_string($sourceValue);
            }
}
}
$gpcData = implode("t", $_GET);
$runtimeData = implode("t", $sourceDataRecord);
echo $gpcData, $runtimeData;
?>

sourceData.txt의 내용은 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

" 또다른 일요일 오후입니다
트루닝 돌고 돌아.....뒤돌아 가네"

getData.php를 요청할 때의 URL은 다음과 같습니다.

php.test.com/safe/getdata.php?name=maw'eibin&age=25

실행 결과는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

maw'eibin 25" 또다른 일요일 오후입니다rn 트루닝 중입니다
돌다....돌리다 "

⑤참고자료:

http://www.jb51.net/article/35868.htm

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