HTTP 메서드 이해: 멱등성, 안전성 및 사용자 권한 검증까지 📌 서론 REST API에서 사용되는 HTTP 메서드들은 클라이언트가 서버에게 어떤 작업을 요청하는 방식을 정의한다. 이 메서드들은 특정 리소스에 대한 CRUD(Create, Read, Update, Delete) 작업을 수행하는데 사용된다. 여기에는 주로 사용되는 여섯 가지 HTTP 메서드가 있으며, 각각의 특성과 멱등성 여부, 그리고 몇몇 메서드에 대해서 사용자 권한 검증을 아래에서 설명하겠다. 멱등성(Idempotency)이란? 동일한 요청을 한 번 보내는 것과 여러 번 연속으로 보내는 것이 같은 효과를 지니고, 서버의 상태도 동일하게 남을 때, 해당 HTTP 메서드가 멱등성을 가졌다고 말한다. 다른 말로는, 멱등성 메서드에는 통계기록..
Spring/Spring 기초 지식
입력 데이터 이스케이프, CSP, HTTPOnly 설정, 브라우저 내장 필터로 XSS 공격에 대응하자. 1. XSS 공격의 위험성 XSS(Cross-Site Scripting) 공격은 웹 애플리케이션의 보안 취약점을 이용하는 공격이다. 이 공격은 웹 애플리케이션의 사용자 인터페이스에 악의적인 스크립트를 주입하여, 다른 사용자들의 브라우저에서 실행되게 만든다. XSS 공격은 주로 웹 환경에서 발생하며, 기본적으로 클라이언트 측에서 발생하는 보안 문제이다. 다시 말해, XSS(Cross-Site Scripting) 공격은 사용자의 중요한 정보, 예를 들어 쿠키나 세션 토큰 같은 개인정보를 위험에 빠뜨릴 수 있는 심각한 보안 위협이다. 공격자들은 이런 방식으로 사용자의 계정에 무단으로 접근할 수 있다. 또한,..
SQL 인젝션 방어 방법: PreparedStatement 기본 사용부터 MyBatis, JPA 적용까지 SQL 인젝션은 애플리케이션에서 사용자로부터 입력받은 데이터를 적절히 처리하지 않을 때 발생하는 보안 취약점이다. 데이터베이스에 직접적으로 악의적인 SQL 쿼리를 주입하는 이 공격은 시스템의 보안을 심각하게 위협한다. 이를 방어하는 세 가지 방법을 알아보자 1. PreparedStatement 기본 방법 SQL 인젝션 공격의 예시 웹 애플리케이션에서 사용자의 로그인 정보를 확인하는 간단한 SQL 쿼리가 있다고 가정하자. SELECT * FROM users WHERE username = '사용자입력값' AND password = '사용자입력값'; 사용자가 정상적인 값을 입력하는 것이 기대되지만, 공격자..