안전하지 않은 전송 (HTTP 평문 전송)
Insecure Transport (Cleartext Transmission)
설명
HTTP를 통해 데이터를 전송할 경우 정보가 암호화되지 않아 네트워크 상에서 쉽게 도청될 수 있습니다. 공격자는 네트워크를 중간에서 감청하거나 변조(man-in-the-middle attack)하여, 민감한 정보를 탈취하거나 조작할 수 있습니다. 특히 로그인 정보, 개인정보, 인증 토큰 등이 노출될 수 있습니다.
잠재적 영향
민감 정보 유출: 사용자 정보, 인증 정보, 기타 중요한 데이터가 외부에 노출될 수 있습니다.
데이터 변조 가능성: 전송 중 데이터가 공격자에 의해 변경될 수 있습니다.
세션 탈취: 인증 토큰이나 세션 쿠키가 탈취될 위험이 있습니다.
해결 방법
항상 HTTPS 프로토콜을 사용하여 데이터를 암호화해서 전송하세요.
서버와 클라이언트 모두 SSL/TLS 인증서를 올바르게 설정하세요.
민감 데이터는 절대 HTTP로 송신하지 않도록 코드 리뷰 및 자동 검사 도구를 활용하세요.
취약한 코드 및 안전한 코드 예시
취약한 코드
import axios from 'axios';
// 민감 정보가 평문 HTTP로 전송됨
axios.post('http://www.example.com/api/login', {
username: 'user',
password: 'password123'
});
fetch('http://www.example.com/api/profile', {
method: 'GET',
});안전한 코드
설명:
취약한 코드: HTTP 프로토콜을 사용하여 데이터를 전송하면 네트워크에서 암호화 없이 송신되므로, 공격자가 정보를 쉽게 볼 수 있습니다.
안전한 코드: HTTPS를 사용하여 데이터를 전송하면 SSL/TLS를 통해 암호화되어 기밀성과 무결성을 보장합니다. 네트워크를 통해 전송되는 정보가 외부에 노출되지 않습니다.
참조
Last updated