SQL InjectionSQL Injection 공격은 입력 값 검증의 취약점을 이용한 공격이다.흔히 웹 개발을 하게 되면 특정 입력 값에 대해서 SQL 문을 실행하게 되는데 이러한 점을 이용하여 입력 값으로 SQL 문을 삽입해 의도치 않게 SQL 문을 실행하게 된다.OWASP라는 웹 애플리케이션 보안을 담당하는 비영리 단체에서 4년마다 보안 취약점 TOP 10을 제공하고 있다. 위의 결과를 보면 2021년도에 SQL Injection 공격이 3위에 랭크되어 있다. OWASP Top Ten | OWASP FoundationThe OWASP Top 10 is the reference standard for the most critical web application security risks. Adopti..
XSS(Cross Site Scripting)최근에 과제 테스트를 본 적이 있는데 만족스럽다고 생각하고 제출했지만 당일에 xss 공격으로 뚫려버렸다.웹 개발자를 희망하면서 이런 취약점도 생각하지 못하고 과제를 제출했다는 게 정말 부끄럽고 내가 많이 부족하다는 것을 다시 깨닫게 되었지만 한편으로는 이번 경험을 계기로 xss에 대해 공부해 보며 한 단계 더 성장할 수 있다는 약간의 기쁜(?) 감정이 들었다.내가 열심히 만든 과제를 바로 뚫어버린 xss란 녀석은 대체 뭔지 살펴보며 어떻게 대응할 수 있는지도 같이 살펴보자.xss 공격이란 공격자가 입력한 악성스크립트가 사용자 측에서 응답하는 취약점을 말한다.공격자가 상대방의 브라우저에 스크립트가 실행되도록 해 사용자의 세션을 가로채거나, 웹 사이트를 변조하거나..
토큰(Token)토큰은 클라이언트가 서버에 접속하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 토큰이라는 것을 발급해 준다.토큰을 발급받은 클라이언트는 다시 서버에게 요청을 보낼 때 요청 헤더에 토큰을 넣어서 보내게 되고 해당 서버는 클라이언트로 받은 토큰을 서버에서 제공한 토큰과 일치하는지 확인하여 인증하게 된다.이러한 인증 방식을 토큰 기반 인증 방식이라고 한다.그렇다면 왜 세션 기반 인증 방식 보다 토큰 기반 인증 방식을 사용할까? 기존 세션 기반 인증 방식의 문제점JWT로 인증하는 방식을 공부하기 전에 먼저 기존의 세션 방식에서의 문제점을 살펴보자.기존의 세션 기반 인증 방식의 문제점으로는 두 가지 경우가 있다. 1. 서버 이중화에 따른 문제점사용자의 요청이 많아질수록 서버의 부하가 증가하게..