XSS(Cross-site Scripting)

사이트 간 스크립팅 : 공격자가 클라이언트 코드에 악의적인 스크립트를 주입
사이트변조 or 백도어를 통해 클라이언트에 대한 악성공격 함

  • 공격대상 : Client
    • 쿠키나 세션 토큰 등의 민감한 정보를 탈취
  • 대응
    • filter 제작 : 모든 입력값에 대한 필터링
      • naver의 lucyfilter : 자바스크립트 공격을 방어하는 라이브러리
    • 쿠키의 보안옵션 사용 : ‘보안쿠키’라는 파라미터 지정 -> TLS상에서만 사용가능
    • 컨텐츠 보안정책(CSP) 사용 : 출처가 자기 서버인 스크립트만 실행가능


CSRF(Cross-site Request Forgery)

kjk

공격자가 요청을 위조하여(사용자의 동의없이, 사용자가 인지하지 못하는 상황에서) 사용자의 권한을 이용해 서버에 악성공격 함
ex) 사용자가 로그인한 상태 + 사이트간 요청위조 공격코드가 삽입된 페이지 열면(사용자도 모르는)
-> 웹사이트는 믿을 수 있는 사용자로부터 발송된 것으로 판단하여 공격에 노출이 됨

  • 공격대상 : Server
  • 대응
    • Post 방식으로 보내기 (하이퍼링크는 get방식이니까)
    • referrer 검증(Samsite 쿠키설정) : request의 referrer를 확인하여 domain (e.g. *.instagram.com) 이 일치하는 지 검증
    • CSRF Token(Security Token) 사용
      • 사용자의 세션에 임의의 난수 값을 저장 + 사용자의 요청 마다 해당 난수 값을 포함 시켜 전송
      • 요청을 받을 때마다 세션에 저장된 토큰 값과 요청 파라미터에 전달되는 토큰 값이 일치하는 지 검증


Reference
https://program-developer.tistory.com/99
https://dar0m.tistory.com/246
https://lucete1230-cyberpolice.tistory.com/23

업데이트: