MCP 도구가 URL을 받을 때 — SSRF는 왜 생기고 어떻게 막나
MCP 도구가 URL을 인자로 받아 대신 요청을 보낼 때 생기는 SSRF 취약점을 다룬다. 문자열 패턴 매칭으로는 왜 못 막는지, 호스트명이 아니라 실제 연결되는 IP를 검사해야 하는 이유, DNS 리바인딩의 한계와 허용 목록이라는 더 단순한 대안까지 코드로 정리한다.
3개의 글
MCP 도구가 URL을 인자로 받아 대신 요청을 보낼 때 생기는 SSRF 취약점을 다룬다. 문자열 패턴 매칭으로는 왜 못 막는지, 호스트명이 아니라 실제 연결되는 IP를 검사해야 하는 이유, DNS 리바인딩의 한계와 허용 목록이라는 더 단순한 대안까지 코드로 정리한다.
pm2는 Node 앱을 백그라운드에서 죽지 않게 굴려주는 프로세스 매니저다. 크래시 자동 재시작, 부팅 시 자동 실행, 클러스터 모드로 CPU 코어 전부 쓰기, 로그 관리까지 — node app.js 한 줄로는 안 되는 운영을 실제 명령으로 정리한다.
stdio MCP 서버에서 console.log 한 줄이 연결을 통째로 깨뜨릴 수 있다. stdout이 통신 채널인 이유와, 로그를 stderr로 보내야 하는 까닭을 짚는다.
MCP 도구가 URL을 인자로 받아 대신 요청을 보낼 때 생기는 SSRF 취약점을 다룬다. 문자열 패턴 매칭으로는 왜 못 막는지, 호스트명이 아니라 실제 연결되는 IP를 검사해야 하는 이유, DNS 리바인딩의 한계와 허용 목록이라는 더 단순한 대안까지 코드로 정리한다.
pm2는 Node 앱을 백그라운드에서 죽지 않게 굴려주는 프로세스 매니저다. 크래시 자동 재시작, 부팅 시 자동 실행, 클러스터 모드로 CPU 코어 전부 쓰기, 로그 관리까지 — node app.js 한 줄로는 안 되는 운영을 실제 명령으로 정리한다.
stdio MCP 서버에서 console.log 한 줄이 연결을 통째로 깨뜨릴 수 있다. stdout이 통신 채널인 이유와, 로그를 stderr로 보내야 하는 까닭을 짚는다.
비공개로 의견 보내기
작성자에게만 전달돼요. 이름·이메일을 비우면 완전 익명입니다.