사용자 입력이 MySQL 쿼리에 삽입 될 때 사용자 입력에서 대체해야하는 위험한 문자는 무엇입니까? 따옴표, 큰 따옴표, \ r 및 \ n에 대해 알고 있습니다. 다른 사람들이 있습니까?
(매개 변수를 허용하는 스마트 커넥터를 사용할 수있는 옵션이 없으므로 쿼리를 직접 작성해야하며 PHP의 mysql_real_escape_string
과 같은 솔루션이 유효하지 않은 일부 애매한 것들을 포함하여 여러 프로그래밍 언어로 구현됩니다.)MySQL 사용자 매개 변수 살균
답변
mysql_real_escape_string() 문서 :
계정에 연결의 현재 문자 집합을 복용, 이스케이프 SQL 문자열 인코딩에서의 문자열입니다. 결과는 ~에 배치되고 종료 널 바이트가 추가됩니다. 인코딩 된 문자는 NUL (ASCII 0), "\ n", "\ r", "\", " '", ""및 Control-Z입니다 (8.1 절. "리터럴 값" MySQL은 로그 파일에 읽을 그들을 쉽게 할 수 있습니다.이 기능은 다른 문자를 인용 이스케이프 해당 백 슬래시와 쿼리 문자열을 인용하는 데 사용되는 인용 문자가 필요합니다.)
는 mysql_real_escape_string를 ()은 문자 집합을 인식하므로 모든 공격 기능 (특히 멀티 바이트 공격 문제)을 복제하는 것이 적은 작업이 아닙니다.
http://cognifty.com/blog.entry/id=6/addslashes_dont_call_it_a_comeback.html에서 :
이AS = addslashes() MRES = mysql_real_escape_string() ACS = addcslashes() //called with "\\\000\n\r'\"\032%_" Feature AS MRES ACS escapes quote, double quote, and backslash yes yes yes escapes LIKE modifiers: underscore, percent no no yes escapes with single quotes instead of backslash no yes*1 no character-set aware no yes*2 no prevents multi-byte attacks no yes*3 no
나는 이것에 관한 더 많은 정보를 발견했다 : http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet#MySQL_Escaping – Tom
어떤 언어를 지원해야합니까? 스스로 작성하는 것보다 언어 내장 된 위생 처리를 사용하는 것이 훨씬 낫습니다.
편집 : php.net에 mysql_real_escape_string
에서 상대 : \x00
, \n
, \r
, \
, '
, "
및 \x1a
:
mysql_real_escape_string()
는 다음 문자로 백 슬래시를 앞에 추가의 MySQL의 라이브러리 기능mysql_real_escape_string
를 호출합니다. mysql.com에서
나는 그것을해야한다고 생각한다, 고마워! – Tom
- 1. mysql 튜닝 매개 변수
- 2. MySql 사용자 정의 변수
- 3. 레일 - : 조잡한 살균/대용
- 4. PHP 보안 - 살균 및 청소
- 5. 매개 변수 문제가있는 mysql 저장 프로 시저
- 6. C# mysql 매개 변수, 포인트 열 오류
- 7. tablename을 무시하는 MySQL 연결 매개 변수
- 8. 파이썬 - MySQL 인덱스 자동화하기 : 매개 변수 전달하기
- 9. MySQL 저장 프로 시저 매개 변수
- 10. C# : XML 텍스트 값을 XmlTextWriter로 살균 하시겠습니까?
- 11. 코드 블로그의 입력을 살균 처리합니다.
- 12. 사용자 지정 템플릿에 매개 변수 전달
- 13. 활성 리소스에 대한 사용자 지정 매개 변수
- 14. OpenRasta - 사용자 지정 코덱에 매개 변수 전달
- 15. Knockout.js : 사용자 지정 바인딩의 배열 매개 변수
- 16. 사용자 지정 Webpart 매개 변수 - Sharepoint 2007
- 17. 전달 매개 변수 및 사용자 입력
- 18. Page_Load에서 사용자 정의 컨트롤로 매개 변수 전달
- 19. 사용자 지정 클래스를 사용하여 매개 변수 확인
- 20. Crystal Reports 사용자 매개 변수 쿼리에
- 21. 사용자 정의 매개 변수 핸들러 MVC
- 22. 사용자 지정 유효성 검사에 매개 변수 보내기
- 23. 사용자 지정 명령 줄 매개 변수
- 24. ExtJS 사용자 정의 페이징 매개 변수
- 25. 사용자 컨트롤의 새 하위 매개 변수 전달
- 26. 사용자 지정 인증 특성 추가 매개 변수?
- 27. 생성자 매개 변수 대 메서드 매개 변수?
- 28. 매개 변수
- 29. 매개 변수
- 30. 매개 변수
@eyelidlessness : PHP, C# .NET을 3.0, 자바, VB 및 C가 (실제로는 언어가 개발 자체가 적합하지 않습니다 아무것도에서 단지 끔찍하지만 주입 지원 C "functions"code) – Tom
실제로 언어 별 내장 탈출 함수를 찾았지만 C# .NET 관련 문서를 찾을 수 없습니다. 새 개발자는 온라인 문서가 없으면 어떻게 작동합니까? – eyelidlessness
언제든지 돌아 오면 허용되는 답변을 전환하십시오. 미카 위트 만이 내 것보다 낫다. – eyelidlessness