>  기사  >  백엔드 개발  >  PHP에서 Magic Quotes를 끄는 방법은 무엇입니까? 방법 소개

PHP에서 Magic Quotes를 끄는 방법은 무엇입니까? 방법 소개

PHPz
PHPz원래의
2023-03-24 17:09:451409검색

PHP 개발자라면 "Magic Quotes"라는 문제에 직면할 수 있으며, 이로 인해 코드가 프로덕션 환경에서 제대로 작동하지 않을 수 있습니다. Magic Quotes는 SQL 주입 공격으로부터 웹 애플리케이션을 보호하도록 설계된 보안 메커니즘입니다. 그러나 시간이 지남에 따라 Magic Quotes는 안전하지 않은 것으로 입증되어 취소되었습니다.

이 기사에서는 Magic Quotes를 끄고 PHP 코드를 최신 보안 및 모범 사례에 맞게 유지하는 방법을 보여 드리겠습니다.

마법의 인용문이란 무엇입니까

PHP 초기 버전에서 개발자들은 양식에서 데이터를 추출하여 데이터베이스에 삽입해야 한다는 사실을 깨달았습니다. 이 과정에서 'SQL 인젝션'이라는 실제 보안 문제가 존재한다는 사실을 발견했다. SQL 주입은 공격자가 악성 코드를 제출하여 웹 애플리케이션을 손상시키는 매우 널리 사용되는 공격 방법입니다. SQL 주입 공격으로부터 개발자를 보호하기 위해 PHP 개발 팀은 Magic Quotes를 도입했습니다.

Magic Quotes는 SQL 주입 공격으로부터 개발자를 보호하기 위해 입력 데이터에서 따옴표 또는 기타 특수 문자를 자동으로 이스케이프하는 자동 적용 기능입니다. 예를 들어, 사용자가 텍스트 상자에 "O'Reilly"를 입력하면 Magic Quotes는 이를 "O'Reilly"로 이스케이프 처리합니다.

이렇게 하면 웹 애플리케이션을 보호할 수 있지만 특정 상황에서는 문제가 발생할 수도 있습니다. Magic Quotes는 데이터를 수정하여 애플리케이션을 손상시킬 수 있습니다. 예를 들어, 애플리케이션이 데이터베이스에 따옴표와 함께 데이터를 저장하려고 하는 경우 Magic Quotes는 이를 방지합니다. 따라서 Magic Quotes를 끄는 것이 더 나은 선택일 수 있습니다.

마법의 인용문 끄기

마법의 인용문을 끄기로 결정했다면, php.ini 파일에서 Magic_quotes_gpc 옵션을 설정하기만 하면 됩니다. Magic_quotes_gpc는 Magic Quotes의 동작을 제어하는 ​​스위치입니다. "On"으로 설정하면 PHP는 자동으로 문자 이스케이프 작업을 수행합니다. "끄기"로 설정하면 PHP는 이러한 문자를 자동으로 이스케이프하지 않습니다. php.ini 파일에서 Magic_quotes_gpc 옵션을 설정하는 방법은 다음과 같습니다.

magic_quotes_gpc = Off

이렇게 변경한 후에는 웹 서버를 다시 시작해야 합니다. PHP 코드에서 phpinfo() 함수를 사용하여 Magic Quotes가 성공적으로 꺼졌는지 확인할 수 있습니다. 성공적으로 꺼지면 다음 출력이 표시됩니다.

magic_quotes_gpc = Off

Alternatives

Magic Quotes를 끄면 PHP 코드가 최신 보안 및 모범 사례를 준수하도록 유지할 수 있지만, 대안을 살펴봐야 할 몇 가지 상황이 있습니다. . 예를 들어, 애플리케이션이 SQL 주입 공격으로부터 데이터를 보호해야 하는 경우 데이터 바인딩이나 매개변수화된 쿼리를 사용할 수 있습니다. 데이터 바인딩은 SQL 쿼리문의 자리 표시자에 데이터 값을 바인딩하는 방법인 반면, 매개변수화된 쿼리는 미리 정의된 SQL 쿼리문과 매개변수를 사용하여 쿼리 작업을 수행하는 방법입니다.

결론

Magic Quotes는 SQL 주입 공격으로부터 웹 애플리케이션을 보호하는 기능이었지만 안전하지 않은 것으로 입증되어 제거되었습니다. Magic Quotes를 끄기로 결정한 경우 php.ini 파일에서 Magic_quotes_gpc 옵션을 설정해야 합니다. 웹 애플리케이션을 보호하기 위해 데이터 바인딩 및 매개변수화된 쿼리와 같은 대안을 찾을 수도 있습니다. 어떤 방법을 선택하든 PHP 코드가 최신 보안 및 모범 사례를 준수하는지 확인하세요.

위 내용은 PHP에서 Magic Quotes를 끄는 방법은 무엇입니까? 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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