CodeIgnighter의 데이터베이스 API에 의존하는 here과 같은 코드 작성기에서 모델을 작성하려고합니다. CodeIgnighter의 데이터베이스 API가 SQL 주입을 완전히 막는 지 여부에 대해서는 forum post을 읽었습니다. 나는 people suggest을 알기 때문에 SQL 삽입을 막는 가장 좋은 방법은 PDO Framework입니다. 그러나 PDO 프레임 워크를 사용하는 방법을 알고 있지만 준비된 문을 사용하여 모델에서 쿼리를 생성하는 방법을 알 수 없습니다. CodeIgnighter의 데이터베이스 API를 사용하여 SQL 인젝션을 저장해야합니까? 아니면 PDO 프레임 워크를 사용해야합니까?CodeIgnighter의 데이터베이스 라이브러리가 SQL 삽입을 방지하기에 충분합니까?
1
A
답변
3
내장 된 코드 점화기를 사용하면 모든 기능을 사용할 수 있습니다. 여기
이 더 설명 유래에 대한 링크입니다 :를 사용하여 쿼리를 parametized StackOverflow Question,, 그리고 위의 SO 문제의 예를 따라, 당신은 SQL 주입으로부터 안전 할 것, 다른 사람을 많은이 없다 CI 모범 사례에 따라 좋은 코드를 작성하고 내장 된 모든 기능을 사용하면됩니다.
2
CI의 라이브러리는 SQL 주입에 대해 mysql_real_escape_string
(또는 원하는 드라이버가 무엇이든간에)과 마찬가지로 적절합니다. 왜 이런거야? DB 라이브러리가 모든 입력에 대해이를 호출하기 때문입니다. 또한 모든 테이블 및 컬럼 이름을 적절히 이스케이프합니다. 또한 PDO를 사용한다는 것은 CI의 Active Record 구문을 다시 작성해야한다는 것을 의미합니다.
즉, PDO에는 많은 이점이 있습니다. 나는 보안이 사실상 그들 중 하나라고 생각하지 않는다.
3
CodeIgniter에 대해 많이 말할 수는 없지만 Doctrine을 예제로 사용합니다. 데이터베이스에서 사용자를 가져오고 싶다고합시다. ..
// Correct usage. $user value will be passed as bound parameter to PDO
$query->where('u.username = ?', $user);
또는 동일
// Works fine but should not be used like this and can be exploited if $user was not sanitized/escaped
$query->where("u.username = '$user' ");
도 일반 PDO에 적용됩니다 : 당신은 쿼리에 조건을 추가 할 수 있습니다.
답변 : 그것은 도움이 될 수 있지만 문서를 읽고 지침을 따라야합니다.
관련 문제
- 1. SQL Server를 사용하는 동안 쿼리 삽입을 방지하기에 충분합니까?
- 2. mysql_real_escape_string : 데이터베이스 보안만으로 충분합니까?
- 3. preparedStatement가 SQL 삽입을 피합니까?
- 4. SQL Server 2005의 SP3만으로도 충분합니까?
- 5. 준비된 문이 SQL- 삽입을 방지합니까?
- 6. SQL 삽입을 수행 할 때?
- 7. XSS : REQUEST_URI를 통해 htmlspecialchars() 실행 - &을 & - XSS 삽입을 방지하기에 충분하도록 바꾸시겠습니까?
- 8. 병합시 데이터베이스 삽입을 수행하는 JPA EntityManger?
- 9. InsertOnSubmit이 SubmitChanges에 데이터베이스 삽입을 트리거하지 않음
- 10. htmlentities()와 mysql_real_escape_string()은 PHP에서 사용자 입력을 청소하기에 충분합니까?
- 11. Nhibernate 3.0 QueryOver가 SQL 삽입을 제대로 처리합니까?
- 12. ruby on rail은 update_attributes가 SQL 삽입을 방지합니까?
- 13. 삽입을 사용하여 SQL 서버에서 mysql으로 데이터 마이그레이션하기
- 14. SQLite로 충분합니까?
- 15. SQL 형식의 Java 라이브러리가 있습니까?
- 16. phpMyAdmin에서 SQL 데이터베이스 데이터베이스
- 17. SQL Server Express는 개발자에게 충분합니까? 아니면 개발자 버전을 받아야합니까?
- 18. 간단한 형태의 데이터베이스 저장을위한 PHP 라이브러리가 있습니까?
- 19. Java 용 데이터베이스 모델링 라이브러리가 있습니까?
- 20. SQL 연습용 SQL 데이터베이스
- 21. python으로 데이터베이스 삽입을 스크립트하는 방법은 무엇입니까? 오래된 예를 사용
- 22. CentOS 명령 줄에서 데이터베이스 삽입을 실행할 수 있습니까?
- 23. HSQLDB 1.8에서 조건부 삽입을 단일 데이터베이스 트랜잭션으로 사용 하시겠습니까?
- 24. SQL 삽입을 방지하기 위해 사용자 데이터의 일부를 파일에 저장합니다.
- 25. 정적으로 링크하려면 정적 라이브러리가 필요합니까?
- 26. 웹 서비스 보안 - 충분합니까?
- 27. 얼마나 많은 콩이 충분합니까?
- 28. 인증서 : .cer 충분합니까?
- 29. REST에 대한 설명으로 충분합니까?
- 30. HTTPS가 양식의 동작으로 충분합니까?