특정 상황에서 PHP 웹 페이지에 양식 데이터를 제출하면 모든 큰따옴표 앞에는 백슬래시를 사용하세요. 이 문제는 마술 따옴표로 알려진 서버 구성 기능으로 인해 발생합니다.
마법 따옴표가 활성화되면 PHP는 큰 따옴표를 포함한 특정 문자를 데이터베이스 또는 양식 제출로 보내거나 받을 때 자동으로 이스케이프합니다. 이는 악의적인 인용을 이스케이프 처리하여 SQL 삽입 공격을 방지할 수 있지만 일반 형식 처리를 방해할 수도 있습니다.
문제 해결
문제를 해결하려면 다음을 사용할 수 있습니다. 양식 데이터를 데이터베이스에 저장하거나 페이지에 표시하기 전에 자동으로 추가된 백슬래시를 제거하는 Stripslashes() 함수. 예는 다음과 같습니다.
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
이 조건문은 매직 따옴표가 활성화되어 있는지 확인하고 활성화된 경우 스트립슬래시()를 사용하여 $input 변수에서 백슬래시를 제거합니다. 이렇게 하면 추가 수정 없이 양식 데이터를 정상적으로 처리할 수 있습니다.
마법 따옴표 설명
마법 따옴표는 더 이상 사용되지 않는 기능이며 최신 PHP에서는 안전하지 않은 것으로 간주되어야 합니다. 개발. 이는 PHP 4에 도입되었으며 다양한 보안 및 코드 호환성 문제가 발생하여 PHP 7.0.0에서 제거되었습니다.
마법 따옴표를 비활성화하면 보다 투명하고 안전한 코딩 관행이 가능하므로 일반적으로 매직 따옴표를 비활성화하는 것이 좋습니다. PHP 구성 파일을 수정하고 Magic_quotes_gpc를 Off로 설정하여 마술 따옴표를 비활성화할 수 있습니다.
마법 따옴표의 기능을 이해하고 스트립슬래시()를 사용하여 이 "모든 따옴표 앞에 슬래시" 문제를 해결하면 효과적으로 처리할 수 있습니다. PHP로 데이터를 형성하고 매직 따옴표가 활성화된 경우에도 의도된 기능을 보장합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3