Add support for DNS rebinding protections (#861)
This commit is contained in:
parent
a2f8766a8a
commit
86bb54cb28
1 changed files with 799 additions and 13 deletions
|
|
@ -50,6 +50,7 @@ from mcp.server.sse import SseServerTransport
|
|||
from mcp.server.stdio import stdio_server
|
||||
from mcp.server.streamable_http import EventStore
|
||||
from mcp.server.streamable_http_manager import StreamableHTTPSessionManager
|
||||
from mcp.server.transport_security import TransportSecuritySettings
|
||||
from mcp.shared.context import LifespanContextT, RequestContext, RequestT
|
||||
from mcp.types import (
|
||||
AnyFunction,
|
||||
|
|
@ -118,6 +119,9 @@ class Settings(BaseSettings, Generic[LifespanResultT]):
|
|||
|
||||
auth: AuthSettings | None = None
|
||||
|
||||
# Transport security settings (DNS rebinding protection)
|
||||
transport_security: TransportSecuritySettings | None = None
|
||||
|
||||
|
||||
def lifespan_wrapper(
|
||||
app: FastMCP,
|
||||
|
|
@ -674,6 +678,7 @@ class FastMCP:
|
|||
|
||||
sse = SseServerTransport(
|
||||
normalized_message_endpoint,
|
||||
security_settings=self.settings.transport_security,
|
||||
)
|
||||
|
||||
async def handle_sse(scope: Scope, receive: Receive, send: Send):
|
||||
|
|
@ -779,6 +784,7 @@ class FastMCP:
|
|||
event_store=self._event_store,
|
||||
json_response=self.settings.json_response,
|
||||
stateless=self.settings.stateless_http, # Use the stateless setting
|
||||
security_settings=self.settings.transport_security,
|
||||
)
|
||||
|
||||
# Create the ASGI handler
|
||||
|
|
|
|||
Loading…
Reference in a new issue