diff --git a/public/docs/_examples/security/ts/app/bypass-security.component.html b/public/docs/_examples/security/ts/app/bypass-security.component.html index 1b0a9d0c0e..374dcc8d64 100644 --- a/public/docs/_examples/security/ts/app/bypass-security.component.html +++ b/public/docs/_examples/security/ts/app/bypass-security.component.html @@ -2,7 +2,7 @@

Bypass Security Component

-

A untrusted URL:

+

An untrusted URL:

Click me

A trusted URL:

Click me

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 9b33247828..7c30903955 100644 --- a/public/docs/_examples/security/ts/app/bypass-security.component.ts +++ b/public/docs/_examples/security/ts/app/bypass-security.component.ts @@ -16,7 +16,7 @@ export class BypassSecurityComponent { // #docregion trust-url constructor(private sanitizer: DomSanitizer) { // javascript: URLs are dangerous if attacker controlled. - // Angular sanitizes them in data binding, but we can + // Angular sanitizes them in data binding, but you can // explicitly tell Angular to trust this value: this.dangerousUrl = 'javascript:alert("Hi there")'; this.trustedUrl = sanitizer.bypassSecurityTrustUrl(this.dangerousUrl); @@ -28,7 +28,7 @@ export class BypassSecurityComponent { 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 + // 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 = 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 0419e5b324..88475e3724 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 @@ -8,6 +8,6 @@ import { Component } from '@angular/core'; }) // #docregion inner-html-controller export class InnerHtmlBindingComponent { - // E.g. a user/attacker controlled value from a URL. + // For example, a user/attacker-controlled value from a URL. htmlSnippet = 'Template Syntax'; } diff --git a/public/docs/ts/latest/glossary.jade b/public/docs/ts/latest/glossary.jade index b72adf74b9..96df4be2f1 100644 --- a/public/docs/ts/latest/glossary.jade +++ b/public/docs/ts/latest/glossary.jade @@ -41,7 +41,8 @@ block includes .l-sub-section :marked Helps us organize an application into cohesive blocks of functionality. - An Angular module identifies the components, directives, and pipes that the application uses along with the list of external Angular modules that the application needs, such as `FormsModule`. + An Angular module identifies the components, directives, and pipes that the application uses + along with the list of external Angular modules that the application needs, such as `FormsModule`. Every Angular application has an application root module class. By convention, the class is called `AppModule` and resides in a file named `app.component.ts`. @@ -251,7 +252,7 @@ block includes that each do one thing well and then wiring them together at runtime. These parts often rely on other parts. An Angular [component](#component) - part might rely on a service part to get data or perform a calculation. When + part might rely on a service part to get data or perform a calculation. When part "A" relies on another part "B", you say that "A" depends on "B" and that "B" is a dependency of "A". diff --git a/public/docs/ts/latest/guide/security.jade b/public/docs/ts/latest/guide/security.jade index 58c3d683bb..098459b35a 100644 --- a/public/docs/ts/latest/guide/security.jade +++ b/public/docs/ts/latest/guide/security.jade @@ -1,115 +1,113 @@ block includes include ../_util-fns :marked - 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 section 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?_). - The [Open Web Application Security Project (OWASP)](https://www.owasp.org/index.php/Category:OWASP_Guide_Project) - has further information on the attacks and mitigations described below. + For more information about the attacks and mitigations described below, see [OWASP Guide Project](https://www.owasp.org/index.php/Category:OWASP_Guide_Project). .l-main-section :marked - # Table Of Contents + # Contents: - * [Reporting Vulnerabilities](#report-issues) - * [Best Practices](#best-practices) - * [Preventing Cross-Site Scripting (XSS)](#xss) - * [Trusting Safe Values](#bypass-security-apis) - * [HTTP-level Vulnerabilities](#http) - * [Auditing Angular Applications](#code-review) + * [Reporting vulnerabilities](#report-issues). + * [Best practices](#best-practices). + * [Preventing cross-site scripting (XSS)](#xss). + * [Trusting safe values](#bypass-security-apis). + * [HTTP-Level vulnerabilities](#http). + * [Auditing Angular applications](#code-review). - Try the of the code shown in this chapter. + Try the of the code shown in this page. .l-main-section -h2#report-issues Reporting Vulnerabilities +h2#report-issues Reporting vulnerabilities :marked Email us at [security@angular.io](mailto:security@angular.io) to report vulnerabilities in Angular itself. - For further details on how Google handles security issues please refer to [Google's security + For more information about how Google handles security issues, see [Google's security philosophy](https://www.google.com/about/appsecurity/). .l-main-section -h2#best-practices Best Practices +h2#best-practices Best practices :marked * **Keep current with the latest Angular library releases.** - We regularly update our Angular libraries and these updates may fix security defects discovered in - previous version. Check the Angular [change + We regularly update our Angular libraries, and these updates may fix security defects discovered in + previous versions. Check the Angular [change log](https://github.com/angular/angular/blob/master/CHANGELOG.md) for security-related updates. * **Don't modify your copy of Angular.** - Private, customized versions of Angular tend to fall behind the current version and may neglect + Private, customized versions of Angular tend to fall behind the current version and may not include important security fixes and enhancements. Instead, share your Angular improvements with the community and make a pull request. - * **Avoid Angular APIs marked in the documentation as “[_Security Risk_](#bypass-security-apis)”.** + * **Avoid Angular APIs marked in the documentation as “[_Security Risk_](#bypass-security-apis).”** .l-main-section -h2#xss Preventing Cross-Site Scripting (XSS) +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 - particular their login data), or perform actions impersonating the user. This is one of the most + [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 data (in + particular, their login data) or perform actions impersonating the user. This is one of the most common attacks on the web. - To block XSS attacks, we must prevent malicious code from entering the DOM. For example, if an - attacker can trick us into inserting a `