diff --git a/adev/src/content/reference/errors/NG05201.md b/adev/src/content/reference/errors/NG05201.md new file mode 100644 index 00000000000..6c81b9292c4 --- /dev/null +++ b/adev/src/content/reference/errors/NG05201.md @@ -0,0 +1,53 @@ +# Unsafe value used in a resource URL context + +Angular throws this error when you bind a value to an attribute that loads an external resource — like ` +``` + +If the URL comes from a trusted, controlled source, mark it safe using `DomSanitizer.bypassSecurityTrustResourceUrl`: + +```typescript +import {DomSanitizer, SafeResourceUrl} from '@angular/platform-browser'; + +@Component({ + selector: 'my-app', +}) +export class App { + safeUrl: SafeResourceUrl = inject(DomSanitizer).bypassSecurityTrustResourceUrl( + 'https://example.com/embed', + ); +} +``` + +```html + +``` + +`bypassSecurityTrustResourceUrl` is an escape hatch, not a sanitizer. Never pass user-supplied URLs through it — that would allow an attacker to load arbitrary content, including malicious scripts. Only use it when the value is fully under your control. diff --git a/goldens/public-api/platform-browser/errors.api.md b/goldens/public-api/platform-browser/errors.api.md index 318d67c89b2..0d7a720700f 100644 --- a/goldens/public-api/platform-browser/errors.api.md +++ b/goldens/public-api/platform-browser/errors.api.md @@ -19,7 +19,7 @@ export const enum RuntimeErrorCode { // (undocumented) SANITIZATION_UNEXPECTED_CTX = 5202, // (undocumented) - SANITIZATION_UNSAFE_RESOURCE_URL = 5201, + SANITIZATION_UNSAFE_RESOURCE_URL = -5201, // (undocumented) SANITIZATION_UNSAFE_SCRIPT = 5200, // (undocumented) diff --git a/packages/platform-browser/src/errors.ts b/packages/platform-browser/src/errors.ts index b310f6db6e8..97e17883c99 100644 --- a/packages/platform-browser/src/errors.ts +++ b/packages/platform-browser/src/errors.ts @@ -24,7 +24,7 @@ export const enum RuntimeErrorCode { // Sanitization-related errors (5200-5300 range) SANITIZATION_UNSAFE_SCRIPT = 5200, - SANITIZATION_UNSAFE_RESOURCE_URL = 5201, + SANITIZATION_UNSAFE_RESOURCE_URL = -5201, SANITIZATION_UNEXPECTED_CTX = 5202, // Animations related errors (5300-5400 range)