>  기사  >  백엔드 개발  >  php mysql 이스케이프 함수란 무엇입니까?

php mysql 이스케이프 함수란 무엇입니까?

藏色散人
藏色散人원래의
2021-09-16 09:53:022747검색

php mysql 이스케이프 함수에는 다음이 포함됩니다. 1. addlashes 함수, 2. htmlspecialchars 함수, 4. mysql_real_escape_string 함수 등

php mysql 이스케이프 함수란 무엇입니까?

이 기사의 운영 환경: Windows 7 시스템, PHP 버전 7.1, Dell G3 컴퓨터

php mysql 이스케이프 기능은 무엇입니까? 도구를 사용할 때 POST sql 문을 쿼리 데이터에 제출할 때 백엔드에서 f1329f8b92097dc7fb062b4427699601가 포함된 SQL 문을 수신하면 구문 오류가 보고됩니다.

하지만 제출된 명세서를 출력하면 문제 없습니다. 생각해 보세요. 인코딩 또는 이스케이프 문제일 것입니다.

$sqlQuery = html_entity_decode($_POST["content"]);
$sqlQuery = stripslashes($sqlQuery);[object Object]
다음은 PHP에서 일반적으로 사용되는 이스케이프 기능과 보안 기능을 주로 소개합니다. 이러한 기능을 사용하면 SQL 삽입과 같은 가장 일반적인 공격 방법을 필터링할 수 있습니다. ('), ("), (), (NUL) 4개의 문자를 포함하여 의 특수 문자입니다. 이 함수는 DBMS에 자체 이스케이프 기능이 없을 때 사용되지만, DBMS에 자체 이스케이프 기능이 있는 경우에는 사용됩니다. 예를 들어 MySQL에는 SQL을 탈출하기 위한 mysql_real_escape_string 함수가 있습니다. PHP5.3 이전에는 Magic_quotes_gpc가 기본적으로 활성화되어 있으며 주로 $GET, $POST 및 $COOKIE에 대한 추가 작업을 수행합니다. 따라서 그렇지 않습니다. 이러한 변수에 대해 addlashes를 반복적으로 호출해야 합니다. 그렇지 않으면 이중 이스케이프가 발생합니다. 그러나 Magic_quotes_gpc는 PHP5.3에서 더 이상 사용되지 않으며 PHP5.4 최신 버전을 사용하는 경우 제거되었습니다. 이 문제는 걱정할 필요가 없습니다. addlashes의 이스케이프 기능입니다.

2. htmlspecialchars htmlspecialchars는 (&), ('), ( "), (). 성격.

& (AND) => &
” (双引号) => " (当ENT_NOQUOTES没有设置的时候)
‘ (单引号) => ' (当ENT_QUOTES设置)
< (小于号) => <
> (大于号) => >

html특수 문자를 사용하면 $GET, $POST, $COOKIE 데이터를 필터링하여 XSS를 방지할 수 있습니다. htmlspecialchars 함수는 보안 위험이 있는 것으로 간주되는 HTML 문자만 이스케이프 처리한다는 점에 유의하세요. HTML에서 이스케이프할 수 있는 모든 문자를 이스케이프하려면 htmlentities를 사용하세요. htmlspecialchars_decode는 htmlspecialchars의 디코드 기능입니다.

3.htmlentities

htmlentities는 HTML의 이스케이프 가능한 콘텐츠를 HTML 엔터티로 이스케이프합니다. html_entity_decode는 htmlentities의 디코드 기능입니다.

4.mysql_real_escape_string

mysql_real_escape_string은 MySQL 라이브러리 함수 mysql_real_escape_string을 호출하여 (x00), (n), (r), (), ('), (x1a)를 이스케이프합니다. 즉, 앞에 백슬래시를 추가합니다(). SQL 주입을 방지하기 위해. 데이터베이스 데이터를 읽을 때 이스케이프 해제를 위해 스트립슬래시를 호출할 필요는 없습니다. 이러한 백슬래시는 데이터베이스가 SQL을 실행할 때 추가되고 데이터가 데이터베이스에 기록될 때 백슬래시가 제거되므로 데이터베이스에 기록된 내용이 은 원본 데이터이며 앞에 백슬래시가 없습니다.

5.strip_tagsstrip_tags는 NUL, HTML 및 PHP 태그를 필터링합니다.

6.stripslashes()

함수는 addlashes() 함수에 의해 추가된 백슬래시를 제거합니다.

7. 결론 PHP에 내장된 보안 기능은 XSS를 완전히 피할 수 없습니다. HTML Purifier

추천 학습: "

PHP 비디오 튜토리얼

"

위 내용은 php mysql 이스케이프 함수란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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