홈시작하기HTTP 키로 등록하기디스코드 없이 서버 등록하기디스코드로 서버 등록하기시드 보고와 차단버전 확인과 426인증과 서버 키차단 모델오류 처리요청 한도버전과 호환성POST /v1/servers/claimPOST /v1/servers/reportPOST /v1/servers/revokePOST /plugin/v1/claimPOST /plugin/v1/reportGET /plugin/v1/versionGET /maps/{seed}GET /jobs/{seed}GET /seedsGET /stats/overviewGET /stats/protectionAPI 변경 내역
개념
인증과 서버 키
차단 API는 서버 키 하나로 인증합니다. 키를 받는 경로는 세 가지이고, 경로에 따라 키가 IP에 묶이는지와 차단 상한이 다릅니다. 조회 API는 인증이 없습니다.
키의 종류
| 형식 | 이름 | 쓰는 곳 | 수명 |
|---|---|---|---|
| slsrv_… | 서버 키 | 시드 보고의 Authorization 헤더 | 폐기될 때까지 |
| slclm_… | 디스코드 코드 | POST /api/plugin/v1/claim 본문. 서버 키로 교환됩니다 | 발급 후 24시간, 한 번만 사용 |
서버 키는 발급 응답에서 한 번만 제공됩니다. 서버에는 해시만 저장되므로 잃어버린 키는 다시 조회할 수 없습니다. 새로 발급받아야 합니다.
헤더 형식
Authorization: Bearer slsrv_Kd82mQ1xPz…
Bearer 뒤에 공백 하나를 두고 키를 적습니다. Bearer는 대소문자를 구분하지 않습니다. 헤더가 없거나 키가 틀리면 401 {"error":"invalid credential"} 입니다. 폐기된 키와 등록된 IP가 아닌 곳에서 보낸 보고도 같은 401입니다. 이유는 응답에서 구분되지 않습니다.
발급 경로 비교
| 직접 등록 | 디스코드 + 플러그인 | 디스코드 HTTP 키 | |
|---|---|---|---|
| 발급 방법 | POST /api/v1/servers/claim | POST /api/plugin/v1/claim | 디스코드 코드 패널의 버튼 |
| 소유 증명 | 요청 IP:포트에 SCP:SL 서버가 응답하는지 A2S_INFO로 확인 | 디스코드 계정과 게임 서버에서 보낸 코드 | 디스코드 계정 |
| 보고를 보낼 수 있는 곳 | 등록된 IP | 등록된 IP | 어디서든 |
| 한 시드의 최대 차단 | 1시간 | 1시간 | 20분 |
| 발급 한도 | IP당 5분에 1개, 사용 중인 키 IP당 3개 | 계정당 서버 수 한도(기본 1) | 계정당 서버 수 한도(기본 1) |
| 보고 엔드포인트 | POST /api/v1/servers/report | POST /api/plugin/v1/report | POST /api/v1/servers/report |
| 폐기 | POST /api/v1/servers/revoke, 또는 같은 IP:포트로 다시 등록 | POST /api/v1/servers/revoke, 디스코드 패널, 같은 주소로 다시 등록 | POST /api/v1/servers/revoke, 디스코드 패널 |
직접 구현한다면 직접 등록을 권장합니다. 게임 서버 머신에서 요청을 보낼 수 없을 때만 HTTP 키를 사용합니다. HTTP 키는 실제 서버가 보내는지 확인되지 않으므로 차단 상한이 20분으로 짧습니다.
요청 IP의 판정
요청을 보낸 IP는 CDN이 붙이는 CF-Connecting-IP 헤더로 정합니다. 클라이언트가 IP를 적어 보내는 필드는 없습니다. IPv6는 표기 차이를 무시하고 주소 값으로 비교합니다. 직접 등록과 플러그인 경로의 키는 이 IP에 묶이고, 다른 IP에서 보낸 보고는 401입니다.
교체와 폐기
- 같은 IP:포트에 새 키가 발급되면 이전 키는 폐기됩니다. 이전 키로 보내는 보고는 401입니다.
- 키를 가진 쪽은 POST /api/v1/servers/revoke 로 언제든 그 키를 폐기할 수 있습니다. 디스코드에서 등록한 서버는 디스코드 패널에서도 폐기됩니다. 폐기된 키의 보고는 401입니다.
- 폐기는 즉시 적용되고 되돌릴 수 없습니다. 새 키를 발급받으면 됩니다.
- 401을 받으면 보고를 중단하세요. 같은 키로 다시 보내도 결과는 같습니다.
키 보관
- 키는 설정 파일이나 비밀 저장소에 두고 로그, 채팅, 소스 저장소에 남기지 마세요.
- HTTP 키는 IP에 묶이지 않습니다. 노출되면 누구나 그 서버 이름으로 시드를 20분씩 차단할 수 있습니다. 노출됐으면 그 키로 POST /api/v1/servers/revoke 를 보내 바로 폐기하고 새로 받으세요.
- 요청 기록에는 키의 앞 12자만 남습니다. 문의할 때는 앞 12자만 알려 주면 됩니다.
SLMAPS는 SCP: Secret Laboratory의 시드 지도 뷰어입니다. 이 문서는 slmaps.com의 공개 API를 설명합니다.slmaps.com ·