이 영역을 누르면 첫 페이지로 이동
담덕이의 탐방일지 블로그의 첫 페이지로 이동

담덕이의 탐방일지

페이지 맨 위로 올라가기

담덕이의 탐방일지

담덕이의 주관적인 시선으로 담은 이야기가 있는 곳, 담덕이의 탐방일지입니다. 연락은 damduck@damduck01.com

XSS 방지 처리 작업 중 발생한 JSON parse error 처리 방법

  • 2018.08.24 13:45
  • 직장・자기계발/IT 인터넷
반응형

6월에 진행 중이던 프로젝트에서 XSS 방지 처리 작업 하면서 발생한 문제 해결법 정리 해 둔 내용인데 그동안 왜 발행을 안 하고 있었는지 모르겠는데 찾은 김에 포스팅하려고 합니다. Spring에서 JSON에 XSS 방지 처리 하기를 읽고 크로스 사이트 스크립팅(XSS: Cross Site Scripting) 작업을 진행 중 아래와 같은 에러가 발생했습니다.

 

console 에러 내용

2018:06:22 14:11:27.639 ERROR --- [http-nio-8080-exec-8] c.m.c.e.GlobalExceptionHandler : [Global Exception Handler] : org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unrecognized field "userPagingCallback" (class cohttp://m.mizmedi.user.vo.intro.OtherVo), not marked as ignorable; nested exception is cohttp://m.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "userPagingCallback" (class cohttp://m.mizmedi.user.vo.intro.OtherVo), not marked as ignorable (142 known properties: "amrsvCnt", "nonUseFlag", "hp", "nextPkId", "cdTreatTypeExp", "custKey", "count", "spclClncFlag", "currentPageNumber", "isInterested", "tmpAMMaxRsvCnt", "startRow", "holidayStartDt", "coopStatExp", "pchtml", "deptType", "baseCodeSeq", "orderby", "endDate", "totalCount", "subject", "subDeptCode", "rowsPerPage", "deptKorName", "ampmFlag", "tmpAMRsvCnt", "upperPkId", "multiSubDeptCode", "applyDate", "year", "rsv_AVAILABLE", "regDt", "cdSex", "tmpPMRsvCnt", "prevPkId", "doctorName", "acptCancelFlag", "mobilehtml", "holidayEndDt", "dayState", "selectType", "holiday", "deptPkId", "srchType", "addr1", "addr2", "tmpPMMaxRsvCnt", "maxPatPerintv", "sex", "cnt", "sPatId", "reserveDt", "tmpPMRsvFlag", "phone", "homeAddr", "ct", "pkId", "partnerDocLicNo", "partnerDocHp", "content", "cdMediteam", "regUser", "month", "codeValue", "mobilehtml2", "newOpdCnt", "customerName", "clncEndTime", "tripStartDate", "zipcode", "locationType", "schedule", "cdSexExp", "doctorId", "day", "reservable" [truncated]])
 at [Source: java.io.PushbackInputStream@264a7b54; line: 1, column: 150] (through reference chain: cohttp://m.mizmedi.user.vo.intro.OtherVo["userPagingCallback"])

 

개발자 도구 에러 내용

{status: "500",…}
client:"0:0:0:0:0:0:0:1"
etc:null
message:"JSON parse error: Unrecognized field "userPagingCallback" (class cohttp://m.mizmedi.user.vo.intro.OtherVo), not marked as ignorable; nested exception is cohttp://m.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "userPagingCallback" (class cohttp://m.mizmedi.user.vo.intro.OtherVo), not marked as ignorable (142 known properties: "amrsvCnt", "nonUseFlag", "hp", "nextPkId", "cdTreatTypeExp", "custKey", "count", "spclClncFlag", "currentPageNumber", "isInterested", "tmpAMMaxRsvCnt", "startRow", "holidayStartDt", "coopStatExp", "pchtml", "deptType", "baseCodeSeq", "orderby", "endDate", "totalCount", "subject", "subDeptCode", "rowsPerPage", "deptKorName", "ampmFlag", "tmpAMRsvCnt", "upperPkId", "multiSubDeptCode", "applyDate", "year", "rsv_AVAILABLE", "regDt", "cdSex", "tmpPMRsvCnt", "prevPkId", "doctorName", "acptCancelFlag", "mobilehtml", "holidayEndDt", "dayState", "selectType", "holiday", "deptPkId", "srchType", "addr1", "addr2", "tmpPMMaxRsvCnt", "maxPatPerintv", "sex", "cnt", "sPatId", "reserveDt", "tmpPMRsvFlag", "phone", "homeAddr", "ct", "pkId", "partnerDocLicNo", "partnerDocHp", "content", "cdMediteam", "regUser", "month", "codeValue", "mobilehtml2", "newOpdCnt", "customerName", "clncEndTime", "tripStartDate", "zipcode", "locationType", "schedule", "cdSexExp", "doctorId", "day", "reservable" [truncated]])↵ at [Source: java.io.PushbackInputStream@264a7b54; line: 1, column: 150] (through reference chain: cohttp://m.mizmedi.user.vo.intro.OtherVo["userPagingCallback"])"
sessionId:"2e376416-883f-4572-be1d-6375e6f1976a"
status:"500"
uri:"/intro/other/reserve/list"
user:null

 

해결 방법

ObjectMapper, UnrecognizedPropertyException, JsonInclude 예시 글을 참조하여 다음과 같이 각 VO 클래스 정의 작업을 진행하였습니다.

@JsonIgnoreProperties(ignoreUnknown = true)

 

위에 작성한 어노테이션 대응 import는 다음과 같습니다.

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

 

728x90
반응형
로그인하고 댓글 쓰러 가기. (∩•̀ω•́)⊃-*⋆

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 내 블로그의 글로벌 랭킹을 알려주는 사이트 EASY COUNTER

    내 블로그의 글로벌 랭킹을 알려주는 사이트 EASY COUNTER

    2018.10.20
  • 담덕이의 탐방일지 2018년 3사분기 인기 유입 검색어 순위

    담덕이의 탐방일지 2018년 3사분기 인기 유입 검색어 순위

    2018.10.06
  • 나만의 온라인 서재 구축하기 2. DS718+에 BicBucStriim 설치해보자 (2)

    나만의 온라인 서재 구축하기 2. DS718+에 BicBucStriim 설치해보자 (2)

    2018.08.21
  • 담덕이의 탐방일지 2018년 5월 인기 유입검색어 순위 발표

    담덕이의 탐방일지 2018년 5월 인기 유입검색어 순위 발표

    2018.06.13
다른 글 더 둘러보기

정보

담덕이의 탐방일지 블로그의 첫 페이지로 이동

담덕이의 탐방일지

  • 담덕이의 탐방일지의 첫 페이지로 이동

검색

메뉴

  • 전체보기
  • 안부 남기기

카테고리

  • 전체보기 (3441) N
    • 직장・자기계발 (698)
      • IT 인터넷 (212)
      • 모바일 (114)
      • 과학 (1)
      • IT 제품리뷰 (241)
      • 경영・직장 (3)
    • 여행 · 맛집 (2037) N
      • 서울 강남구 (10)
      • 서울 강동구 (1)
      • 서울 강서구 (67)
      • 서울 구로구 (198)
      • 서울 마포구 (8)
      • 서울 서대문구 (159)
      • 서울 서초구 (3)
      • 서울 송파구 (1)
      • 서울 양천구 (18)
      • 서울 영등포구 (22)
      • 서울 용산구 (13)
      • 서울 종로구 (25)
      • 서울 중구 (84)
      • 인천광역시 (2)
      • 경기 가평군 (1)
      • 경기 과천시 (10)
      • 경기 광명시 (3)
      • 경기 부천시 (4)
      • 경기 성남시 (818) N
      • 경기 수원시 (84)
      • 경기 시흥시 (3)
      • 경기 안산시 (2)
      • 경기 안성시 (4)
      • 경기 안양시 (108)
      • 경기 양주시 (2)
      • 경기 양평군 (15)
      • 경기 오산시 (3)
      • 경기 용인시 (18)
      • 경기 이천시 (2)
      • 경기 의왕시 (27) N
      • 경기 파주시 (8)
      • 경기 평택시 (3)
      • 경기 화성시 (144)
      • 세종특별자치시 (12)
      • 강원 강릉시 (6)
      • 강원 고성군 (1)
      • 강원 속초시 (2)
      • 강원 인제군 (2)
      • 강원 정선군 (1)
      • 충남 서산시 (2)
      • 충남 아산시 (5)
      • 충남 천안시 (4)
      • 충남 태안군 (1)
      • 충북 청주시 (23)
      • 대전 동구 (1)
      • 대전 서구 (1)
      • 대전 유성구 (2)
      • 광주광역시 (1)
      • 전북 고창군 (1)
      • 전북 군산시 (6)
      • 전남 구례군 (4)
      • 전남 보성군 (1)
      • 전남 해남군 (1)
      • 경북 경주시 (24)
      • 경북 구미시 (1)
      • 경북 김천시 (1)
      • 경북 상주시 (1)
      • 제주도 (29)
      • 해외여행 (34)
    • 문화 · 연예 (108)
      • TV (2)
      • 영화 (54)
      • 독서노트 (26)
      • 만화·애니 (18)
      • 공연·전시·축제 (8)
    • 리빙・스타일 (293) N
      • 생활정보 (46) N
      • 인테리어 (8)
      • 패션 · 뷰티 (9)
      • 요리 (10)
    • 취미・건강 (67)
      • 취미 (16)
      • 자동차 (51)
    • 가족・연예 (37)
      • 일상 (37)
    • 빛그림으로 남기는 이야기 (61)
    • 담덕이가 하는 이야기 (100)
    • 레드마인 (40)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 평일점심
  • IT
  • 정자동
  • 맛집
  • 성남시
  • 점심메뉴추천
  • 직장인점심메뉴탐방
  • 운중동

나의 외부 링크

  • 담덕이의 탐방일지(YouTube)

정보

담덕.의 담덕이의 탐방일지

담덕이의 탐방일지

담덕.

블로그 구독하기

  • 구독하기
  • 네이버 이웃 맺기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 담덕.. Designed by Fraccino.

티스토리툴바