滿天的星座2017-05-16 13:06:22
php 탈출 gpc
PHP에서는 get_magic_quotes_gpc()
함수가 내장 함수입니다get_magic_quotes_gpc()
函数是内置的函数,这个函数的作用就是得到php.ini
设置中magic_quotes_gpc
选项的值。
那么就先说一下magic_quotes_gpc
选项:
如果magic_quotes_gpc=On
PHP解析器就会自动为post、get、cookie
이 함수의 기능은 php.ini에서
값을 설정합니다.
magic_quotes_gpc
옵션을 가져오는 것입니다.
그럼 먼저 magic_quotes_gpc
옵션에 대해 이야기해 보겠습니다.
magic_quotes_gpc=On
PHP 파서는 post, get, cookie
에서 오는 데이터에 자동으로 이스케이프 문자 ""를 추가하여 이러한 데이터가 발생하지 않도록 합니다. 특수 문자(PHP 문자로 간주되는 문자)로 인한 오염으로 인해 프로그램, 특히 데이터베이스 명령문에 치명적인 오류가 발생합니다. 삽입 후 이스케이프 전 원본 데이터가 데이터베이스에 표시되므로, 꺼낼 때 이스케이프할 필요가 없습니다.
magic_quotes_gpc=On의 경우, 입력 데이터에 🎜작은따옴표('), 큰따옴표("), 백슬래시(), NUL(NULL 문자) 등의 문자가 포함되어 있으면 백슬래시가 추가됩니다. 이러한 변환 정의 이 옵션이 꺼져 있으면 addlashes 함수를 호출하여 문자열에 이스케이프를 추가해야 합니다. 🎜이 옵션은 반드시 On이어야 하지만 사용자가 구성할 수도 있다는 모순 때문입니다. 이 옵션은 PHP6에서 삭제되었으며 모든 프로그래밍은 Magic_quotes_gpc=Off에서 수행되어야 합니다. 이러한 환경에서 사용자의 데이터가 탈출되지 않으면 그 결과는 단순한 프로그램 오류가 아닙니다. 이는 데이터베이스 주입 공격의 위험을 초래합니다. 따라서 이제부터 모든 사람은 더 이상 이 설정을 On으로 설정해서는 안 됩니다. 언젠가는 서버를 PHP6으로 업데이트해야 하고 프로그램이 제대로 작동하지 않을 수 있기 때문입니다. 🎜 으아악 🎜따라서 이 get_magic_quotes_gpc() 함수의 기능은 환경 변수 Magic_quotes_gpc의 값을 가져오는 것임을 알 수 있습니다. PHP6에서는 Magic_quotes_gpc 옵션이 삭제되었기 때문에 이 함수는 PHP6에는 더 이상 존재하지 않는 것 같습니다🎜