2018-01-26 14 20 10.png

 

제 사이트는 이런식으로 이미지 닉네임 수정 항목을 가려 놓은 상태입니다.

그런데 한 회원이 이렇게 두둥... 새로운 이미지 닉네임을 등록하였습니다.

 

직접 물어 보기전에 (아무래도 RXE 기반으로  운영하는 운영자인데...더 모르는 것 같아 쪽팔리니까....T.T)

비슷한 경험이 있으시거나 짐작이 가시는 분들에게 조언을 구해 봅니다. 

 

저분은 회원 항목에도 없는 이미지 닉네임을 어떻게 등록했을까요? 

 

Atachment
첨부
  • Lv30
    회원가입 폼에는 이미지이름 업로드 부분이 보입니다.
  • Lv30 ? Lv17
    • skyo
    • 질문기여자
    와우!! 하하하 그렇군요.~
  • Lv37

    스킨에서 막아놓은 것은 개발자도구 열어보면 기본적으로 다 뚫을 수 있습니다. 코어를 수정하거나 애드온, 모듈 트리거 등을 사용해서 해당 액션 자체를 막아야 확실하지요.

  • Lv37 Lv30
    cond 으로 조건을 걸어 출력하는게 무용지물이면.... 뭐 왠만한 회원그룹이나 로그인 대상 등을 구분해서 출력하는건 의미가 없는건가요?
  • Lv30 Lv37

    정보 노출을 막기 위해 스킨에 cond를 걸어놓는 건 괜찮아요. 소스상에 없으면 개발자도구에도 안 나오니까요. (예: 문제가 있는 회원을 표시하기 위해 관리자만 사용하는 확장변수가 있는데, 해당 회원에게는 그 확장변수가 보이지 않도록 하고 싶다)

    취약점이 발생하는 것은 특정 필드의 수정을 막기 위해 disabled, readonly 등의 속성을 주거나 CSS로 숨기기만 하고, 실제 input은 소스상에 멀쩡하게 남아 있는 경우가 많습니다. 이런 것은 정보가 노출되는 것은 물론, 개발자도구로 조작해서 다시 제출할 수도 있지요.

    정보 노출이 문제가 아니라 변경을 막을 목적이라면 더 확실히 처리해야 합니다. 예를 들어 email_address, nick_name 같은 필드는 XE로 만든 사이트라면 당연히 존재한다는 사실이 널리 알려져 있기 때문에, 소스상에서 완전히 없애버리더라도 개발자도구를 사용해서 동일한 명칭의 필드를 만들어 넣을 수 있어요. 이메일이나 닉네임을 수정하지 못하도록 하는 서드파티 자료들이 쉽게 뚫리는 이유가 이것입니다. 적당히 조작해서 POST 요청으로 제출하면 그대로 저장되거든요. POST 요청에서도 막아야 하는데, 스킨에서만 숨기니 당연히 뚫리지요...

  • Lv37 Lv30
    권한자에게만 출력하는 조건을 걸어 출력하는 것은 뚫리지 않는다니 다행입니다. 이분분도 헛수고라고 하는 듯 들려서 깜짝 놀랐습니다.
  • Lv30 Lv37

    네, 물론 그것도 어떻게 구현했는지에 따라 차이가 있겠지요.

    <div cond="권한확인">민감한 정보</div> ← 이건 괜찮습니다.
    <div style="display:none"|cond="권한확인">민감한 정보</div> ← 이건 다 보입니다.

  • Lv37 Lv30
    네. 당연히 전자쪽으로 처리하죠. 스타일로 가리고 하는 것은 당연히 헛빵이라는건 알고 있구요.

    아마 본문의 사례도 전자의 방식으로 해당부분 출력을 막으셨을 겁니다.
  • Lv8
    이미지 닉네임 수정 못하게하는 옵션이 따로 있지 않나요?
    스킨 상에서 display: none 한건 속성만 삭제해주면 바로 보여서 의미가 없어용.