>  기사  >  백엔드 개발  >  주목할만한 PHP 보안 기능 8가지

주목할만한 PHP 보안 기능 8가지

伊谢尔伦
伊谢尔伦원래의
2016-11-26 16:19:14854검색

현대 인터넷에서는 전 세계 사용자로부터 데이터를 입력받아야 하는 경우가 많습니다. 그러나 우리 모두는 "사용자가 입력한 데이터를 절대 신뢰하지 말라"는 것을 알고 있습니다. 따라서 다양한 웹 개발 언어에는 사용자가 입력한 데이터의 보안을 보장하기 위한 기능이 제공됩니다. PHP에는 웹사이트에서 SQL 주입 공격, XSS 공격 등과 같은 문제를 방지하는 데 도움이 되는 매우 유용하고 편리한 기능이 있습니다. 물론 PHP 코드를 작성할 때 IDE(예: PhpStorm 및 Zend Studio)는 개발자의 사용을 보장하기 위해 기능을 강조합니다. 일부 사람들은 이러한 기능이나 코드(예: Zend Guard)를 보호하기 위해 코드 난독화 도구를 사용하기도 합니다. PHP 기능의 사용과 안전을 보장하는 데 사용됩니다. 오늘은 주로 이러한 기능이 어떻게 정의되고 작동하는지 살펴보겠습니다.

1.mysql_real_escape_string()

이 함수는 PHP에서 SQL 삽입 공격을 방지하는 데 매우 유용합니다. 작은따옴표나 큰따옴표와 같은 특수 문자에 "백슬래시"를 추가합니다. 사용자의 입력을 쿼리에 사용하기 전에 안전한지 확인합니다. 하지만 데이터베이스에 연결되어 있는 동안 이 기능을 사용하고 있다는 점에 유의해야 합니다.

그러나 이제 mysql_real_escape_string() 함수는 기본적으로 더 이상 필요하지 않습니다. 모든 새로운 애플리케이션 개발에서는 PDO와 같은 라이브러리를 사용하여 데이터베이스를 운영해야 합니다. 즉, SQL 주입 공격을 방지하기 위해 이미 만들어진 명령문을 사용할 수 있습니다.

2.addlashes()

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

3.htmlentities()

이 함수는 사용자 입력 데이터를 필터링하는 데 매우 유용합니다. 예를 들어, 사용자가 "<" 문자를 입력하면 이 함수에 의해 HTML 엔터티 <로 변환되므로 XSS 및 SQL 주입 공격이 방지됩니다.

4.htmlspecialchars()

HTML의 일부 문자는 이러한 의미를 반영하려면 HTML 엔터티로 변환해야 합니다. 이 함수는 변환된 문자를 반환합니다. , 예를 들어 '&'amp는 '&'로 변환됩니다.

5.strip_tags()

이 함수는 문자열의 모든 HTML, JavaScript 및 PHP 태그를 제거할 수 있습니다. 물론 함수의 두 번째 매개변수를 설정하여 일부 특정 매개변수를 설정할 수도 있습니다. . 라벨이 나타납니다.

6. md5()

일부 개발자는 매우 간단한 비밀번호를 저장하는데 이는 보안 측면에서 좋지 않습니다. md5() 함수는 주어진 문자열의 md5 해시를 생성할 수 있습니다. , 이 프로세스는 되돌릴 수 없습니다. 즉, md5()의 결과에서 원래 문자열을 가져올 수 없습니다.

7.sha1()

이 함수는 위의 md5()와 유사하지만 다른 알고리즘을 사용하고 40자 SHA-1 해시를 생성합니다(md5는 32- 문자 해시).

8. intval()

웃지 마세요. 이는 안전 관련 함수가 아니며 변수를 정수 유형으로 변환하는 함수라는 것을 알고 있습니다. 그러나 이 기능을 사용하면 특히 ID, 나이와 같은 데이터를 구문 분석할 때 PHP 코드를 더욱 안전하게 만들 수 있습니다.


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