CI 묻고 답하기

제목 CI 보안기능 질문과 대답과 적용
글쓴이 cleansugar 작성시각 2009/08/05 20:34:28
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 34102   RSS

질문: Cookie Hijacking, CSRF, SQL Injection 방어 기능이 필요합니다.

Yii framework의 보안이 CI보다 좋습니다.

http://daniel.carrera.bz/2009/01/comparison-of-php-frameworks-part-i/


 

Builtin Cookie Hijacking

CodeIgniter has this. You have the option of encrypting your sessions, and if they aren’t encrypted then a token is used for CSRF validation purposes. You’ll see it on 140-158 of the session class. The cookie helper does not have this built in as it is a helper to facilitate development, and a dev would need to code this for themselves.
이미 있다. 세션을 암호화하는 옵션이 있고 암호화하지 않으면 토큰이 CSRF 검증목적으로 사용된다. 세션 클래스의 140-158에서 볼 수 있다. 쿠키헬퍼는 개발을 쉽게하기위한 헬퍼이기 때문에 만들어지지 않았다. 그리고 개발자가 스스로 코딩할 필요가 있다.

CSRF

While CI easily facilitates a dev adding this in, it is not currently a default implementation. We’ve added this into ExpressionEngine 2 by extending the form helper. We’re looking at the best way to port it over, but currently sessions are the easiest way to achieve this.
CI는 이걸 추가함으로서 개발을 쉽게할 수 있는 반면, 이것은 현재 디폴트로 구현되지 않았다. 우리는 이걸 익스프레션엔진2에 폼헬퍼로 확장함으로서 추가하였다. 우리는 이걸 포팅해오려고 최선을 다하고 싶지만 현재 세션은 이걸 획득하는 최고 쉬운 길이다.

SQL Injection 보호 기능이 필요


A quick read of the userguide pages around databases should alleviate your concerns. I invite you to to let me know if you still have questions after reading it. CI supports very robust sql injection sanitization, as well as query-binding (prepared statements) if you choose to use them.
데이터베이스에 관한 유저가이드 페이지를 빨리 읽으면 걱정을 덜 수 있다. 그걸 읽고도 여전히 질문이 있는지 궁금하다. CI는 탄탄한 SQL인젝션 보호기능이 있고 쿼리바인딩(준비된 구문)을 사용하길 원하면 지원한다.


이런 답변들이 왔습니다. 구체적으로 무슨말인지 하나도 모르겠는데요. 이런 보안기능이 다 지원되는 걸까요? 어떻게 생각하십니까? 어떻게 구현하라는 말인가요?

 다음글 CI 헬퍼의 분산저장 이유와 합쳐야 할 경우에? (1)
 이전글 각각 디렉토리를 나눠도 되나요? (9)

댓글

변종원(웅파) / 2009/08/06 00:23:17 / 추천 0

인젝션의 경우 액티브레코드를 사용하면 자동으로 방지할 수 있습니다.
csrf의 경우도 세션 암호화를 사용하지 않아도 체크하여 방지할 수 있다고 이야기하네요.
(세션 라이브러리 140-158줄 참고)

결론은 세가지 모두 지원된다 입니다.

마냐 / 2009/08/06 01:21:23 / 추천 0
"데이터베이스에 관한 유저가이드 페이지를 빨리 읽으면 걱정을 덜 수 있다. 그걸 읽고도 여전히 질문이 있는지 궁금하다."

정답인듯요.

DB 부분은 Active Record를 사용하시면 걱정을 덜 수 있습니다.
ci세상 / 2009/08/06 10:56:49 / 추천 0

ㅎㅎ 검색하는 습관~~ 메뉴얼 이해될때까지 숙지하도록 노력하겠습니다.^^

CI 를 접한다면 보안적인 측면은 믿고 맡기셔도 될것 같습니다. DDOS에는 대안이 없지만 조잡한 인간들의 방어들에 대한부분은 어느정도 되어 있다고 믿고 있겠습니다. ^^

터프키드 / 2009/08/06 13:28:16 / 추천 0
쿼리바인딩이 몬가요?
큐같은건가요? ㅎㅎ; <== 무식쟁이..ㅠㅠ
시난 / 2009/10/12 11:08:36 / 추천 0
inser into table(a,b) valeus('v1','v2'); 하는 방법이 있고
inser into table(a,b) valeus(?,?); 하는 방법이 있는데
후자를 얘기합니다. ^^;
CUBRID라는 DBMS는 요렇게 지원하고 있네요.
http://www.cubrid.com/online_manual/cubrid_820/api/api_php_prepare.htm