Validate tool arguments at the execution boundary
Treat model-generated tool arguments as untrusted input even when they satisfy the generated schema and bind successfully to the expected C# types.
Treat model-generated tool arguments as untrusted input even when they satisfy the generated schema and bind successfully to the expected C# types.
Use CORS to control browser-script access across origins, while enforcing API permissions with authentication and authorization.
Choose global and endpoint-specific request body limits instead of inheriting accidental defaults for uploads and APIs.
Keep uploads quarantined until required metadata, content, and resource checks succeed, while treating client filenames as untrusted.
Do not cache a GET response unless the cache key matches the user, tenant, and permission boundary that shaped it.
Give workloads and people the narrow Azure role they need instead of defaulting to Contributor.
Do not let prompt instructions decide what data or actions a user is allowed to access.
Prefer Azure-managed identities over long-lived secrets in deployed applications.