TIP-IT유용한정보

Chrome이 이 페이지에서 비정상적인 코드를 감지했으며 개인정보(예: 비밀번호, 전화번호, 신용카드) 보호를 위해 차단했습니다. 조치하는 방법

무한열정 2019. 1. 15. 17:03

 

 

크롬, 사파리, 오페라 브라우저에서 다음과 비슷한 메시지가 출력될수 있다.

이 페이지에서 비정상적인 코드를 감지했으며 개인정보(예: 비밀번호, 전화번호, 신용카드) 보호를 위해 차단했습니다

 

The XSS Auditor blocked access to '~~~~~~~~~~' because the source code of a script was found within the request. The server sent an 'X-XSS-Protection' header requesting this behavior.

 

XSS공격을 브라우저단에서 막기때문인데

정상적인 페이지 일지라도 위와같은 메시지가 출력될수 있다.

 

Apple WebKit계열 브라우저에서 X-XSS-Protection헤더에 따른 처리를 활성화 할수 있다.

참고로 Blink는 웹킷엔진 기반으로 발전된 웹브라우저 렌더링 엔진이다.

* 동일한 계열의 엔진을 사용한 브라우저중에 마이크로소프트의 엣지만 영향이 없었다.

개발사
브라우저 X-XSS-Protection 웹엔진
Google Chrome 해당 Blink(Webkit)
Apple Safari 해당 Webkit
Microsoft Edge 영향없음 Blink(Webkit)
Opera Software Opera 해당 Blink(Webkit)

 

다음과 같이 웹브라우저에 내장된 XSS AUDITOR에의해 HTML 렌더링이 중단되고 경고메시지가 출력된다.

 

* 오페라 브라우저에서의 XSS 차단 메시지

 

 

* 크롬브라우저에서의 차단 메시지

 

* 사파리 브라우저에서의 렌더링 중지현상 ( 맥OS )

 

 

* Response Header 값 확인 (X-XSS-Protection)

 

 

 

* 첫번째 대응방법

Java의 다음과 같이 헤더값을 변경하여 준다.

response.setHeader("X-XSS-Protection","0");

* 테스트결과 현재 이방법으로는 대응이 되지 않았다. 두번째 대응방법을 사용해야 한다.

 

 

* 두번째 대응방법

document.write()의 경우 XSS의 문제를 일으킬수 있으므로

obj.innerHTML로 변경한다.

 

- 수정전 코드 샘플

document.write(vHtmlCode);

 

- 수정후 조치된 코드 샘플

var baseObj = document.getElementById(“baseObj”)

baseObj.innerHTML = vHtmlCode;

이 방법으로 시도하니 조치가 가능했다.

레거시 코드에서

동일한 문제로 많은사람들이 삽질하지 않았으면 하는 마음으로 공유드립니다.

 

모든게 그렇지만 

알면 상식이고 모르면 기적이다. ^^