CSRF(Cross-Site Request Forgery) 공격
- 공격자가 인증된 사용자의 권한을 이용하여, 악의적인 요청을 전송하는 공격이다. 예를 들어, 사용자가 의도하지 않은 상황에서 금융 거래를 실행하거 나, 개인 정보를 수정하는 등의 행동을 수행할 수 있다.
- ex) 블로그에서 어떤 사람이 로그인한 사람의 정보를 수정시키는 링크를 게시글로 썼다. 유저가 그 링크를 들어간다면 인증이 통과되고 실행 이된다.
- 대처법) GET요청으로 DB변경을 허용하면 안된다.
XSS(Cross-Site Scripting) 공격
- 웹 사이트에서 발생하는 보안 취약점 중 하나로, 공격자가 악성 스크립트를 삽입하여 사용자의 개인정보를 탈취하거나, 세션 하이재킹 등의 악의적인 행동을 할 수 있게 된다.
- ex) 블로그의 게시물에 자바스크립트 코드를 작성하여 게시글의 내용이 아닌 자바스크립트가 실행되게 하여 공격
- ex) 계속 알람을 뛰움, 페이지를 나가지 못하게하거나 다른사이트로 연결(불법광고사이트 등)
<script>
while(true){
alert('안녕'); }
</script>
- 대처법) 스크립트가 실행되지 않도록 서버에서 입력 값 검증을 철저히 하고, 입력된 내용에대해 인코딩해주는 등의 보안절차가 필요 또는CORS설정을 하면 된다.
String content = request.getParameter("content");
String newContent = content.replaceAll("<", "<")
CORS(Cross-Origin Resource Sharing)
- 웹 브라우저에서 실행되는 스크립트가 다른 도메인의 리 소스에 접근할 때 적용되는 보안 정책이다. 일반적으로, 웹 브라우저는 보안상의 이유로 자바스 크립트에서 다른 도메인의 리소스에 접근하는 것을 허용하지 않는다. 이를 Same-Origin Policy 라고 부른다.
- 어떤 장비(장치)로 요청했는지, 이전 사이트가 어디였는지가 Http헤더에 포함된다. → 공격 분석을 위해
- 타인의 쿠키를 탈취하지 못하게 하는 http only 정책
- jsessionid(세션키)를 탈취 하지 못하게 해야함