크롬, 사파리, 오페라 브라우저에서 다음과 비슷한 메시지가 출력될수 있다.
이 페이지에서 비정상적인 코드를 감지했으며 개인정보(예: 비밀번호, 전화번호, 신용카드) 보호를 위해 차단했습니다
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 | 웹엔진 |
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;
이 방법으로 시도하니 조치가 가능했다.
레거시 코드에서
동일한 문제로 많은사람들이 삽질하지 않았으면 하는 마음으로 공유드립니다.
모든게 그렇지만
알면 상식이고 모르면 기적이다. ^^
'TIP-IT유용한정보' 카테고리의 다른 글
[Git] pr(Pull Request)을 로컬에서 확인하는 법 (0) | 2023.04.28 |
---|---|
유익한 개발자 세계의 초고수 인터뷰 소개영상 (2) | 2022.10.10 |
맥 패러랠즈(parallels virtual machine) 쪽으로 서비스 초간단 연결하기 (리얼=>가상쪽으로 연결) (0) | 2018.11.11 |
아이튠즈로 동기화 없이 동영상,음악(mp3) 저장하기 및 오류해결 (0) | 2018.02.05 |
외부에서 VirtualBox 가상환경 접속설정하기 (서비스 포트 외부 노출하기) (0) | 2017.11.28 |