20_Node.js 출력 정보에 대한 보안
20. Node.js - App 제작 - 출력 정보에 대한 보안
XSS
크로스 사이트 스크립팅(사이트 간 스크립팅, cross-site scripting, XSS)
웹 어플리케이션에서 많이 나타나는 취약점의 하나로, 웹 사이트 관리자가 아닌 사용자가
웹 페이지에 악성 스크립트를 삽입 할 수 있는 취약점이다.
웹 개발자들은 주로 xss 필터를 고려하여 개발 한다.
sanitize-html은 이러한 공격 기법을 막기 위한 nodejs 의 모듈이다.
ref https://dydals5678.tistory.com/99
-
사용자가 파일을 create 할 때 html의 input 또는 textarea 등에서
자바 스크립트 script 태그와 alert(); 를 입력하면
웹브라우저에서는 이것을 script 기술로 받아들이기에, 이를 악용하여 악성 스크립트를 삽입 할 수 있다. -
location.href=””; 이러한 코드를 심으면 원하지 않은 페이지로 이동된다.
-
사용자의 로그인 정보를 갈취 할 수도 있다.
많은 온라인 서비스에서 사용자로부터 입력받은 정보를 밖으로 출력할 때
정보에 문제가 될 수 있는 것들을 필터링하는 작업을 하도록 한다.
script 태그를 웹 브라우저가 해석하는 것이 아니라 문자열 그대로 나타나게 해야한다.
HTML Entities 구글링
<script>
태그에 대응하여 수동으로 처리 할 수 있다.
Reserved characters in HTML must be replaced with character entities.
If you use the less than (<) or greater than (>) signs in your text, the browser might mix them with tags.
Character entities are used to display reserved characters in HTML.