1) XSS (Cross-Site Scripting) -> 자바스크립트 공격
웹 애플리케이션에서 일어나는 취약점으로 관리자가 아닌 권한이 없는 사용자가 웹 사이트에 스크립트를 삽입하는 공격 기법
ex)
<script>
for(var i=0; i<5000; i++){
alert("안녕")
}
</script>
2) CSRF(Cross-Site Request Forgery)
웹 어플리케이션 취약점 중 하나로 인터넷 사용자(희생자)가 자신의 의지와는 무관하게 공격자가 의도한 행위(수정, 삭제, 등록 등)를 특정 웹사이트에 요청하게 만드는 공격
방어방법 :
1) Referrer 검증 :
-> request header에 있는 요청을 한 페이지의 정보가 담긴 referrer 속성을 검증하여 차단.
2) CSRF Token 사용 :
-> 랜덤함 수를 사용자의 세션에 저장하여 사용자의 모든 요청(Request)에 대하여 서버단에서 검증.
// 로그인시, 또는 작업화면 요청시 CSRF 토큰을 생성하여 세션에 저장한다.
session.setAttribute("CSRF_TOKEN",UUID.randomUUID().toString());
// 요청 페이지에 CSRF 토큰을 셋팅하여 전송한다
<input type="hidden" name="_csrf" value="${CSRF_TOKEN}" />
3) CAPTCHA 사용
-> 요즘은 거의 모든 웹사이트에서 CAPTCHA를 이용한다. 캡차이미지상의 숫자/문자가 아니라면 해당 요청을 거부하는 것.
이외에도 form 태그를 입력할 시 GET방식을 지양하고 POST방식을 쓰도록 하는 것이 기본이다.