>  기사  >  백엔드 개발  >  PHP에서 안전하지 않은 문자열을 필터링하는 방법

PHP에서 안전하지 않은 문자열을 필터링하는 방법

藏色散人
藏色散人원래의
2021-06-19 10:18:202954검색

PHP에서 안전하지 않은 문자열을 필터링하는 방법: 1. mysql_real_escape_string 함수를 통해 특수 문자에 "백슬래시"를 추가합니다. 2. addlashes 함수를 통해 특수 문자에 백슬래시를 추가합니다. 3. htmlentities 함수 데이터 등을 통해 사용자 입력을 필터링합니다.

PHP에서 안전하지 않은 문자열을 필터링하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP에서 안전하지 않은 문자열을 필터링하는 방법은 무엇입니까? PHP의 문자 보안 필터링 기능 요약

이 기사는 주로 PHP의 문자 보안 필터링 기능을 간략하게 소개합니다. 이는 SQL 주입 공격 및 XSS 공격을 방지하는 데 매우 유용합니다.

WEB 개발 과정에서 전 세계 사용자가 입력한 데이터를 얻어야 하는 경우가 종종 있습니다. 그러나 우리는 "사용자가 입력한 데이터를 결코 신뢰할 수 없습니다." 따라서 다양한 웹 개발 언어에는 사용자가 입력한 데이터의 보안을 보장하기 위한 기능이 제공됩니다. PHP에는 SQL 주입 공격, XSS 공격 등과 같은 문제를 방지하는 데 도움이 되는 매우 유용하고 편리한 기능이 있습니다.

  • mysql_real_escape_string()

이 함수는 한때 PHP에서 SQL 주입 공격을 방지하는 데 큰 도움이 되었습니다. 이 함수는 쿼리에 사용하기 전에 사용자의 입력이 안전한지 확인하기 위해 "백슬래시"를 추가합니다. 하지만 데이터베이스에 연결되어 있는 동안 이 기능을 사용하고 있다는 점에 유의해야 합니다.
하지만 이제 mysql_real_escape_string() 함수는 기본적으로 더 이상 필요하지 않습니다. 모든 새로운 애플리케이션 개발은 PDO와 같은 라이브러리를 사용하여 데이터베이스를 운영해야 합니다. 즉, SQL 주입 공격을 방지하기 위해 이미 만들어진 명령문을 사용할 수 있습니다.

  • addslashes()

이 함수는 위의 mysql_real_escape_string()과 매우 유사하지만 특수 문자에 백슬래시를 추가하지만 php.ini 파일에서 Magic_quotes_gpc를 설정할 때 주의하세요. "켜짐"이면 이 기능을 사용하지 마십시오. Magic_quotes_gpc = on이면 모든 GET, POST 및 COOKIE 데이터에 대해 addlashes()가 자동으로 실행됩니다. Magic_quotes_gpc에 의해 이스케이프된 문자열에는 addlashes()를 사용하지 마십시오. 이렇게 하면 이중 이스케이프가 발생하게 됩니다. 이 변수의 값은 PHP의 get_magic_quotes_gpc() 함수를 통해 확인할 수 있습니다.

  • 3htmlentities()

이 함수는 사용자 입력 데이터를 필터링하는 데 매우 유용하며 문자를 HTML 엔터티로 변환할 수 있습니다. 예를 들어, 사용자가 "<" 문자를 입력하면 이 함수에 의해 HTML 엔터티 "<"로 변환되므로(소스 코드를 볼 때 "<"가 표시됨) XSS 및 SQL 삽입이 방지됩니다. 인식할 수 없는 문자 집합은 무시되고 ISO-8859-1

  • htmlspecialchars()

로 대체됩니다. 이 함수는 위와 매우 유사합니다. 이 의미를 반영하려면 HTML 엔터티로 변환해야 하며 이 함수는 변환된 문자열을 반환합니다.

  • strip_tags()

이 함수는 문자열의 모든 HTML, JavaScript 및 PHP 태그를 제거할 수 있습니다. 물론 함수의 두 번째 매개변수를 설정하여 일부 특정 태그 필터링을 무시할 수도 있습니다. 상표.

  • intval()

intval은 실제로 필터링 함수가 아닙니다. 해당 기능은 변수를 정수 유형으로 변환하는 것입니다. 이는 정수 매개변수를 가져와야 할 때 매우 유용합니다. 특히 ID 및 나이와 같은 정수 데이터를 구문 분석할 때 PHP 코드를 더욱 안전하게 만들 수 있습니다.

이것은 PHP가 양식 제출 시 특수 문자를 처리하는 방법에 대한 요약입니다. 이는 주로 htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string과 같은 여러 기능의 결합 사용과 관련됩니다.
1. 특수 문자 처리와 관련된 여러 PHP 함수

quotemeta. 에는 .\ + * ? [ ^ ] ( $ ) 앞에 백슬래시 "" 기호를 추가합니다. HTML 및 PHP 태그 제거mysql_real_escape_stringSQL 문자열의 특수 문자를 이스케이프하세요. Escape x00 n r space'. " x1a, 멀티바이트 문자 처리에 매우 효과적입니다. mysql_real_escape_string은 문자 집합을 결정하지만 mysql_escape_string은 고려할 필요가 없습니다. PHP 비디오 튜토리얼

위 내용은 PHP에서 안전하지 않은 문자열을 필터링하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
함수 이름ExplanationIntroduction
htmlspecialchars 앰퍼샌드, 작은따옴표 및 큰따옴표, 기호보다 크거나 작은 기호를 HTML 형식으로 변환&변환&
"변환"
'로 변환 '
>Convert>

htmlentities() 모든 문자는 HTML 형식으로 변환됩니다 위의 htmlspecialchars 문자 외에도 인코딩 등으로 표시되는 더블바이트 문자도 포함됩니다.
addslashes 작은따옴표, 큰따옴표, 백슬래시, NULL 및 백슬래시 이스케이프 변경된 문자에는 작은따옴표('), 큰따옴표("), 백슬래시() 및 null 문자가 포함됩니다. NULL.
stripslashes 백슬래시 문자 제거 백슬래시 문자가 두 개만 있으면 하나만 제거하고
문자열 HTML 및 PHP 태그 사이의 내용을 포함하여 문자열의 모든 HTML 태그 및 PHP 태그를 제거하세요. 문자열 HTML 및 PHP 태그에 오류가 있으면 오류도 반환됩니다.
추천 학습: ""