TIP게시판

제목 POST 전송 보안처리 방법, 간과하기 쉬운, 간단한
글쓴이 변종원(웅파) 작성시각 2013/03/22 17:22:32
댓글 : 10 추천 : 0 스크랩 : 1 조회수 : 15989   RSS

컨트롤러의 생성자에

$this->param = $this->input->post(NULL, true);

하면 post 전송된 모든 변수값에 대해 xss clean 처리를 해줍니다.


 

class Class_name extends CI_Controller
{
    public function __construct()
    {
        $this->param = $this->input->post(NULL, true);
    }

    function aa()
    {
        print_r($this->param);
    }
}
아주 쉽게 xss 공격에 대한 방어를 할 수 있는데 가끔 포럼 질문에 올라오는 소스를 보면
처리가 안되어 있더군요.

생활화 합시다~~~~~ ^^
 다음글 2.1.3 Custom Pagination GET Qu...
 이전글 Twitter Bootstarp를 CodeIgniter...

댓글

carion / 2013/03/23 01:35:38 / 추천 0
감사합니다

초보자여서 질문을 하나드리는데
저 코드만 넣으면
사용하는건 기존대로 사용하면 되나요?


예를 들어... $data=$this->input->post(); 식으로요?
아니면 본문처럼 $this->param으로 써야되나요?
꾸숑 / 2013/03/23 05:37:54 / 추천 0
웅파//
저는 Form Validation 의 xss_clean 를 사용했었는데
다른 방법을 알게 되어 너무 감사합니다.

그런데 xss 공격 받아 봤으면 좋겠네요.. 
개념이 서지 않네요.. 어떤 공격인지....
니삼 / 2013/03/24 15:28:27 / 추천 0
꾸숑//
가장 쉬운 예는 자바스크립트로 유저의 쿠키값을 탈취하여 그 쿠키값으로 해당 유저의 권한으로 사이트를 이용하는 겁니다.
이제 그럼 자바스크립트를 유저에게 작동시켜야하는대. 이 과정이 xss입니다.
risa / 2013/03/26 01:05:35 / 추천 0
 덧을 붙이자면..

환경설정에 글로벌 XSS 필터를 TRUE 로 켜놓으면 

post('',true); <- 안해도 적용되어 있습니다.

하지만 필요에 의해 XSS필터를 끄거나 커스텀 해야 하는 경우가 생기기 때문에

환경설정에서는 FALSE로 꺼놓고

post 값을 일일이 true로 하는편이 편합니다.


덤으로 XSS 필터만 하는것이 아니라 HTML 문자 캐릭터 처리도 해줍니다. [뭐 필터 처리가 같은 맥락 이기 때문이라]

싱글이나 더블쿼터도 잘 처리 해주니 적극적으로 사용합니다 ^^



변종원(웅파) / 2013/03/26 09:58:38 / 추천 0
risa/ 맞습니다. config에서 활성화 시켜 놓으면 모든 전송값에 대해 처리를 해주는데 문제는
위지윅에디터 사용할때 생깁니다. style, span 태그를 모두 삭제해버리죠.

위지윅에디터 사용하지 않는다면 config에서 한번 설정하고 사용하는 것이 좋고
반대라면 위 방식으로 사용하면 됩니다.

꾸숑 / 2013/03/26 14:07:49 / 추천 0
니삼//초보로서 보안까지 생각하면서 제작하기에는 무리가 있지만..
CI에 기본적인 방어 도구가 있어서 너무 좋습니다.
잘은 모르지만 말씀하신 내용을 고려해서.. 작업하고 있었네요.. 어떻게 하다보니....
ci의 장점중 하나가 전 보안이라고 생각합니다.

risa//Form Validation 의 xss_clean기능을 사용했는데 에디터를 사용했을때..에디터에서 html 소스를 수정할려고하니 수정이 되지않는 경우가 있었습니다.
그래서 일단  Form Validation 의 xss_clean기능을 사용하지 않으면 정상적으로 수정되더군요
하지만 뭔가 불안한 구석이 있었는데 방법이 있었군요
선배님의 가르침으로 중요한걸 배웠습니다. 감사합니다.

웅파//역시 웅파님이십니다. 항상 가르침에 감사드립니다.
제가 스터디 모집을 하는것에 대해서 웅파님과 상의 드릴려고 했는데요
몇칠 네이트온 접속을 하지 않으시는군요... 
목마른자 우물파는 상황인데 혹시나 포럼에 악영향은 없을지 조심스럽습니다.
현재 저의 롤모델은 웅파님이십니다.^^
변종원(웅파) / 2013/03/26 15:51:30 / 추천 0
꾸숑/ 요즘 회사에서 마이피플을 사용하는지라 네이트온을 설치 안했습니다. ㅎㅎ
메일 주세요. advisor@cikorea.net
꾸숑 / 2013/03/26 16:37:49 / 추천 0
웅파// 멜 드렸습니다..^^
유마 / 2013/04/15 15:17:05 / 추천 0
저도 매뉴얼 보면서 그냥 위의 방식으로 다 받아버렸습니다. 설정하는 것 보다 이게 문제가 덜 생기는 것 같아서요.
아카이sun / 2015/11/06 01:45:22 / 추천 0
CI컨트롤러를 상속받는 클래스를 생성하고 적용한 다음 상속받아도 되겠군요. 좋은 정보 감사합니다.