Expose the streamable HTTP server's Host validation
I maintainer di solito rispondono entro 3 giorni
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- Mezza giornata
- Idoneità per principianti
- 40/100
Direzione di ricerca
Start with the private host_is_allowed and validate_dns_rebinding_headers functions in the streamable HTTP server code, and see how they read the Host header and the allowed hosts. The goal is a public function that takes request headers and the allowed hosts and returns whether the request passes, reusing the existing parsing rules. Done when an axum layer in front of the rmcp service can call it before rmcp's own check, with the existing tests still passing.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
The streamable HTTP server checks the Host header against its allowed hosts (host_is_allowed, validate_dns_rebinding_headers), but those functions are private in 3.3.0. A server that authenticates in an axum layer in front of the rmcp service has to run its own, often costlier, checks before rmcp's Host check refuses a request. A public function that takes the request headers and the configured allowed hosts and returns whether the request passes would let such a layer run the same check first, with no copy of the parsing rules.
- Lingua principale
- Rust
- Stelle
- 4k
- Fork
- 662
- Merge medio
- 3g 19h
- PR unite (30g)
- 35
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di modelcontextprotocol/rust-sdk
-
Streamable HTTP client: a 401 or 403 with a JSON-RPC error body and no WWW-Authenticate loses its HTTP statusForse già presa @aton-of-data l’ha presa 3 giorni fa. Apertabug P2 ready for work T-security T-transport
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
modelcontextprotocol/rust-sdk#1339 ·
I maintainer di solito rispondono entro 3 giorni
-
auth: refresh_token() requests offline_access that was never granted, so refreshes fail with invalid_scopeForse già presa @jstar0 l’ha presa 5 giorni fa. Apertabug P1 ready for work T-security T-transport
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
modelcontextprotocol/rust-sdk#1330 ·
I maintainer di solito rispondono entro 3 giorni
-
P3 question Stale T-documentation T-enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 86/100
modelcontextprotocol/rust-sdk#1155 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Clean up sessions after legacy initialize parsing failsForse già presa @bolinfest l’ha presa oggi. Apertabug P2 ready for work T-transport
modelcontextprotocol/rust-sdk#1357 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 3 giorni
-
Expose body-free HTTP status and Retry-After metadataForse già presa @bolinfest l’ha presa oggi. Aperta
modelcontextprotocol/rust-sdk#1356 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 3 giorni
Tutte le issue di modelcontextprotocol/rust-sdk
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
storytold/photocraft#5710 ·
I maintainer di solito rispondono entro 1 giorno
-
Two tests fail on a Windows checkout: a CRLF parse in feature_walk_tests, an 8.3 TEMP path in libraries_testsForse già presa @CamWight l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
bherbruck/solvecraft#1186 · 1 commento ·
-
area: screenshot audit bug good first issue priority: P3 security severity: info type: correctness
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
pierruno-labs/prowl#31 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
limitlessprojects/Go-Hybrid#50 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno