none
쿠키에 역할 추가 방법??

    질문

  • FormsAuthentication.SetAuthCookie("jangjeonghun", false);

    이렇게 하면 인증된 쿠키가 생성되는걸로 알고 있습니다. 쿠키에 역할을 추가하려면 어떻게 해야나요?


    2012년 5월 18일 금요일 오전 8:47

답변

  • 쿠키에 역할을 추가하는 것에는 신중해야 합니다. 왜냐하면, 자칫 심각한 보안 결함을 낳을 수 있기 때문입니다.

    잠시... 예를 들기 위해, '제품을 판매하는 페이지'를 예로 들어보면, 사용자는 그 화면에서 제품의 가격 및 할인율, 기타 설명들을 볼 것입니다. 그런데, 개발자 입장에서는 그 모든 값들을 내려주어도 사용자가 '구매' 버튼을 눌렀을 때는 다른 모든 값들을 무시하고, '상품 ID'값만 넘겨받아야 합니다. 만약, 이 때 개발자가 클라이언트로부터 올라오는 '가격'을 입력값으로 함께 처리해 버리면, 악의적인 목적으로 가진 사용자는 그것을 이용해 가격을 변조할 수 있습니다.

    사용자 인증도 마찬가지입니다. 쿠키는 사용자 컴퓨터에 내려가게 되고, 그것이 다시 서버로 전달되기 때문에 변조의 가능성이 있습니다. 물론, 암호화를 적절하게 해주면 상관없겠지만 그래도 일말의 가능성을 제공하는 것은 마찬가지입니다.

    따라서, 올바른 방법은 FormsAuthentication.SetAuthCookie 로 인증되었으면 그 인증된 ID 를 기반으로 매번 서버에서 필요한 순간에 그 사용자의 역할을 구해오는 것이 맞습니다. ('상품 ID'가 올라와서 가격을 서버에서 매번 구하는 것처럼)

    .... 어쨌든, 굳이 쿠키로 내려야 한다면, SetAuthCookie 에서가 아닌, 별도의 쿠키를 생성해서 역할에 대한 내용을 포함해 주어야 합니다. (역할 쿠키 생성 전에, 인증 쿠키가 있는 지 확인하는 것도 좋겠지요.)

    2012년 5월 21일 월요일 오전 6:37