PHP에서 기본 마법 인용 부호 또는 사용자 정의 addslash/stripslash를 사용하는 것이 더 낫습니다. 나는 최고의 것을 사용하고 싶다. 도와주세요.PHP에서 기본 마법 인용 부호 또는 사용자 정의 addslash/stripslash를 사용하는 것이 더 낫습니다.
답변
도 마찬가지입니다.
magic quotes은 모든 악의 뿌리입니다. 사용자가 정의한 사용자 만들려 할 이유 (조기 최적화의 xD보다 더 내 눈에)
과 (add
| strip
가) 함수를 슬래시 때 네이티브 PHP는 사람이 있습니까?
당신이 (예를 들어, mysqli_real_escape_string
) 데이터베이스의 특정 기능을 사용
편집을 데이터베이스에 대한 날짜를 탈출하려는 경우
. (코멘트에 SADI와 토론 후) 내 대답을 완료 :당신이 당신이 URL에 입력을 사용하려고하는 경우
htmlspecialchars
를 사용,/출력 일부 입력을 표시하려면 ,
urlencode
그래서, 당신의 데이터를 인코딩 할 최고의이나 올바른 하나의 방법 없다 사용합니다. 당신은 적시에 올바른 장소에서 올바른 기능을 사용해야합니다. 각각은 고유 한 목적을 가지고 있습니다 (여기를 참조하십시오 : http://xkcd.com/163/)
수동으로 수행하십시오! 매직 인용문은 PHP 5에서 사용되지 않으며, 은 PHP 6에서을 제거했습니다. 그뿐만 아니라 순수한 악마입니다! 상상조차 할 수없는 장소에서 오류가 발생합니다. 명시 적 (Explicit)은 항상 암묵적인 것보다 낫습니다 (Python이 말한 것처럼).
마술 따옴표를 전혀 사용하지 않는 것이 가장 좋습니다. 당신이 스크립트의 시작 부분을 끄면 :
set_magic_quotes_runtime(0);
가 감가 상각되는 PHP의 현재 버전을 코딩하는 동안 당신은, PHP의 이전 버전과 호환 될 것입니다 응용 프로그램을 만들 수 있습니다
및 완전히 제거 된 버전을 양육하십시오.
문자열에서 따옴표를 지우는 것은 좋은 습관이고 잘못된 일이 발생하면 PHP 설정이 아닌 자신의 코드에 있음을 알게됩니다. 또는 PHP 버전과 호환되지 않습니다.
희망이 있습니다.
마법 인용 부호를 끄려면 모든 입력에서 따옴표를 자동으로 이스케이프 처리하는 자체 시스템으로 바꾸지 마십시오. 요점은 : 모든 것을 자동으로 벗어나는 것은 나쁜 생각입니다. 응용 프로그램의 다른 시스템이나 계층으로 전달하기 전에 먼저 이스케이프해야합니다. 각 시스템마다 이스케이프 요구 사항이 다릅니다.
예를 들어 HTML을 출력하는 경우 문자열 변수를 출력하기 전에 htmlspecialchars()를 사용하십시오. SQL을 데이터베이스로 보내려면 mysql_real_escape_string()과 같이 해당 데이터베이스 용으로 설계된 이스케이프 함수 중 하나를 사용하십시오. XML 문서를 만들려면 PHP의 XML 라이브러리 중 하나를 사용하십시오. 이것들은 당신을 위해 탈출을 할 것입니다.
완벽한 해결책은 없습니다. 마법의 따옴표가 나쁜 이유는입니다.
- 1. 어느 것이 더 낫습니다? OpenCyc 또는 ConceptNet?
- 2. 인용 부호
- 3. 여러 언어 파일 또는 1을 사용하는 것이 더 낫습니다.
- 4. wx.StaticBitmap 또는 wx.DC : 끊임없이 변화하는 이미지에 사용하는 것이 더 낫습니다.
- 5. 그렙 (인용 부호 포함)
- 6. 느린 성능의 WPF 애니메이션. .png보다 모양을 사용하는 것이 더 낫습니다.
- 7. MySQL 열거 형. 문자열이나 숫자를 사용하는 것이 더 낫습니다.
- 8. 팝업 텍스트 대신 Sprites 대신 Labels를 사용하는 것이 더 낫습니다.
- 9. 아파치 commons fileupload 또는 O'reilly MulipartRequest를 사용하는 것이 더 낫습니다? 더 나은 다음에
- 10. VB.NET에서 모듈 또는 클래스의 함수를 넣는 것이 더 낫습니다.
- 11. 어느 것이 더 낫습니다? 탄소 또는 코코아? (Mac)
- 12. PHP에서 Object 또는 Static Function을 사용하는 것이 더 낫습니까?
- 13. WPF - 어느 것이 더 낫습니까? 스타일 또는 사용자 정의?
- 14. 어떤 HTML 요소입니까? 인용 부호?
- 15. RegExp에서 MSWord 스타일 인용 부호 이스케이프 처리
- 16. 어느 쪽이 더 낫습니다, ETL 또는 ELT입니까?
- 17. JavaScript 파일을 제공 할 때 application/javascript 또는 application/x-javascript를 사용하는 것이 더 낫습니다
- 18. Prism4, Unity 또는 MEF와 함께 Dependency Injection Container로 사용하는 것이 더 낫습니다.
- 19. 스레드 또는 프로세스? 데이터 독립적 인 작업을 사용하는 것이 더 낫습니다.
- 20. 안드로이드에서 사용하는 것이 더 낫습니다. 단색 사각형이있는 1px * 1px .png 이미지 또는 drawable .xml?
- 21. 멀티 섹션 웹 사이트에 중첩 된 마스터 페이지 또는 사용자 정의 컨트롤을 사용하는 것이 더 좋습니까?
- 22. List 또는 Collection을 사용하는 것이 더 좋습니까?
- 23. 레일에서 json 키 인용 부호 끄기
- 24. DictReader, 인용 부호 없음, 탭 파일
- 25. Java에서 인용 부호 (@ "")와 비슷한 C#을 사용하는 방법이 있습니까
- 26. 확대 된 인용 부호 안에 꿀벌을 사용하는 KRL
- 27. Eclipse 스마트 인용 부호 - Textmate와 비슷
- 28. 정규식을 사용하는 것이 더 나은 사례는 무엇입니까?
- 29. 하드 코딩하는 것이 더 낫습니다, 아니면 외부 XML 파일에 두는 것이 더 좋습니까
- 30. F # 인용 부호 안에 변수 삽입