+
diff --git a/public/docs/_examples/security/ts/app/bypass-security.component.ts b/public/docs/_examples/security/ts/app/bypass-security.component.ts
index 6a5f350d28..a18d4251a5 100644
--- a/public/docs/_examples/security/ts/app/bypass-security.component.ts
+++ b/public/docs/_examples/security/ts/app/bypass-security.component.ts
@@ -8,14 +8,18 @@ import { DomSanitizationService, SafeResourceUrl, SafeUrl } from '@angular/platf
templateUrl: 'app/bypass-security.component.html',
})
export class BypassSecurityComponent {
- dangerousUrl: SafeUrl;
+ dangerousUrl: string;
+ trustedUrl: SafeUrl;
+ dangerousVideoUrl: string;
videoUrl: SafeResourceUrl;
// #docregion trust-url
constructor(private sanitizer: DomSanitizationService) {
- // javascript: URLs are dangerous if attacker controlled. Angular sanitizes them in data
- // binding, but we can explicitly tell Angular to trust this value:
- this.dangerousUrl = sanitizer.bypassSecurityTrustUrl('javascript:alert("Hi there")');
+ // javascript: URLs are dangerous if attacker controlled.
+ // Angular sanitizes them in data binding, but we can
+ // explicitly tell Angular to trust this value:
+ this.dangerousUrl = 'javascript:alert("Hi there")';
+ this.trustedUrl = sanitizer.bypassSecurityTrustUrl(this.dangerousUrl);
// #enddocregion trust-url
this.updateVideoUrl('PUBnlbjZFAI');
}
@@ -23,11 +27,12 @@ export class BypassSecurityComponent {
// #docregion trust-video-url
updateVideoUrl(id: string) {
// Appending an ID to a YouTube URL is safe.
- // Always make sure to construct SafeValue objects as close as possible to the input data, so
+ // Always make sure to construct SafeValue objects as
+ // close as possible to the input data, so
// that it's easier to check if the value is safe.
+ this.dangerousVideoUrl = 'https://www.youtube.com/embed/' + id;
this.videoUrl =
- this.sanitizer.bypassSecurityTrustResourceUrl('https://www.youtube.com/embed/' + id);
+ this.sanitizer.bypassSecurityTrustResourceUrl(this.dangerousVideoUrl);
}
// #enddocregion trust-video-url
}
-// #enddocregion
diff --git a/public/docs/_examples/security/ts/app/inner-html-binding.component.ts b/public/docs/_examples/security/ts/app/inner-html-binding.component.ts
index 95a9f55979..0419e5b324 100644
--- a/public/docs/_examples/security/ts/app/inner-html-binding.component.ts
+++ b/public/docs/_examples/security/ts/app/inner-html-binding.component.ts
@@ -11,4 +11,3 @@ export class InnerHtmlBindingComponent {
// E.g. a user/attacker controlled value from a URL.
htmlSnippet = 'Template Syntax';
}
-// #enddocregion inner-html-controller
diff --git a/public/docs/_examples/security/ts/index.html b/public/docs/_examples/security/ts/index.html
index b665a8bc6f..16eeeb2b2a 100644
--- a/public/docs/_examples/security/ts/index.html
+++ b/public/docs/_examples/security/ts/index.html
@@ -1,5 +1,5 @@
-
+
Angular Content Security
@@ -21,6 +21,6 @@
- Loading...
+ Loading...
diff --git a/public/docs/ts/latest/guide/security.jade b/public/docs/ts/latest/guide/security.jade
index c83e07238b..701f10d4e6 100644
--- a/public/docs/ts/latest/guide/security.jade
+++ b/public/docs/ts/latest/guide/security.jade
@@ -1,7 +1,7 @@
block includes
include ../_util-fns
:marked
- Web application security has many aspects. This documentation describes Angular's built in
+ Web application security has many aspects. This chapter describes Angular's built in
protections against common web application vulnerabilities and attacks, such as Cross Site
Scripting Attacks. It does not cover application level security, such as authentication (_Who is
this user?_) or authorization (_What can this user do?_).
@@ -50,7 +50,7 @@ h2#best-practices Best Practices
h2#xss Preventing Cross-Site Scripting (XSS)
:marked
[Cross-Site Scripting (XSS)](https://en.wikipedia.org/wiki/Cross-site_scripting) enables attackers
- to inject malicious code into web pages. Such code can then for example steal user's data (in
+ to inject malicious code into web pages. Such code can then, for example, steal user's data (in
particular their login data), or perform actions impersonating the user. This is one of the most
common attacks on the web.
@@ -81,10 +81,10 @@ h2#xss Preventing Cross-Site Scripting (XSS)
Angular defines four security contexts: HTML, style, URL, and resource URL.
- * HTML is used when interpreting a value as HTML, e.g. when binding to `innerHtml`
+ * HTML is used when interpreting a value as HTML, e.g., when binding to `innerHtml`
* Style is used when binding CSS into the `style` property
* URL is used for URL properties such as ``
- * Resource URLs are URLs that will be loaded and executed as code, e.g. in `