Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP addslashes() 함수 완벽 가이드 – 특수 문자 이스케이프 처리 방법

PHP의 addslashes() 함수는 문자열 내에서 미리 정의된 특수 문자 앞에 백슬래시(\)를 추가하여 반환하는 내장 함수입니다. 주로 데이터베이스 쿼리를 생성할 때 특수 문자로 인한 문법 오류나 SQL 인젝션 공격을 예방하기 위해 사용됩니다.

addslashes()가 이스케이프 처리하는 사전 정의 문자는 다음과 같습니다.

  • 작은따옴표 (')
  • 큰따옴표 (")
  • 백슬래시 (\)
  • NULL

구문

addslashes(str)

매개변수

  • str − 이스케이프 처리할 대상 문자열을 지정합니다.

반환값

미리 정의된 특수 문자 앞에 백슬래시(\)가 추가된 문자열을 반환합니다.

예제 1

다음은 addslashes() 함수의 기본적인 사용 예시입니다.

<?php
    $s = "Who's Tom Hanks?";
    echo $s . " Unsafe for database query!<br>";
    echo addslashes($s) . " Safe in a database query!";
?>

출력 결과

Who's Tom Hanks? Unsafe for database query!
Who\'s Tom Hanks? Safe in a database query!

위 예제를 보면, 원본 문자열의 작은따옴표(')는 그대로 출력되어 데이터베이스 쿼리에서 문제를 일으킬 수 있지만, addslashes()를 적용하면 Who\'s처럼 작은따옴표 앞에 백슬래시가 추가되어 쿼리에서 안전하게 사용할 수 있습니다.

예제 2

큰따옴표가 포함된 문자열에 적용한 또 다른 예제입니다.

<?php
    $s = addslashes('Cricket is a “religion” in India.');
    echo($s);
?>

출력 결과

Cricket is a \“religion\” in India.

큰따옴표 역시 이스케이프 처리되어 문자열이 안전하게 유지되는 것을 확인할 수 있습니다.

참고 사항

최신 PHP 개발 환경에서는 addslashes()보다 PDO 또는 MySQLi의 Prepared Statements(준비된 구문)를 사용하는 것이 보안 측면에서 더 권장됩니다. Prepared Statements는 SQL 인젝션을 근본적으로 차단할 수 있는 더 강력한 방법이기 때문입니다.