Stili come
Background <div [style.transform]="rotate(7deg)"
non sono più aggiunti
aggiornamento (2.0.0 finale)
import { Pipe, PipeTransform } from '@angular/core'; import { DomSanitizer } from '@angular/platform-browser'; @Pipe({name: 'safeHtml'}) export class SafeHtml implements PipeTransform { constructor(private sanitizer:DomSanitizer){} transform(html) { return this.sanitizer.bypassSecurityTrustStyle(html); // return this.sanitizer.bypassSecurityTrustHtml(html); // return this.sanitizer.bypassSecurityTrustScript(html); // return this.sanitizer.bypassSecurityTrustUrl(html); // return this.sanitizer.bypassSecurityTrustResourceUrl(html); } }
Vedi anche https://angular.io/api/platform-browser/DomSanitizer
aggiornare
DomSanitizationService
sarà rinominato in DomSanitizer
in RC.6
originale
Questo dovrebbe essere risolto in RC.2
Vedi anche Guida per gli sviluppatori Angular2 - Sicurezza
Angular2 disinfezione intrusa di valori CSS e associazione di proprietà come [innerHTML]=...
e [src]="..."
in RC.1
Vedi anche https://github.com/angular/angular/issues/8491#issuecomment-217467582
I valori possono essere contrassegnati come attendibili utilizzando DomSanitizer.bypassSecurityTrustStyle(...)
import {DomSanitizer} from '@angular/platform-browser'; ... constructor(sanitizer: DomSanitizationService) { this.backgroundImageStyle = sanitizer.bypassSecurityTrustStyle('url(' + this.image + ')'); // for HTML // this.backgroundImageStyle = sanitizer.bypassSecurityTrustHtml(...); }
e vincolante per questo valore invece la stringa semplice non attendibile.
Questo può anche essere avvolto in un tubo come
@Pipe({name: 'safeStyle'}) export class Safe { constructor(private sanitizer:Sanitizer){} transform(style) { return this.sanitizer.bypassSecurityTrustStyle(style); // return this.sanitizer.bypassSecurityTrustHtml(style); // return this.sanitizer.bypassSecurityTrustScript(value); // return this.sanitizer.bypassSecurityTrustUrl(value); // return this.sanitizer.bypassSecurityTrustResourceUrl(value); } }
con
someHtml = `click to see the awesome`;
sta ancora lavorando però: - [(sono lavori in corso)
Esempio di Plunker (Angular 2.0.0-rc-1)
Vedi anche Problema di monitoraggio della sicurezza di Angular 2
e https://angular.io/docs/ts/latest/api/platform-browser/index/DomSanitizer-class.html
Suggerimento su {{...}}
Il contenuto disinfettato non può essere associato usando prop="{{sanitizedContent}}"
perché {{}}
stringa il valore prima che venga assegnato il quale interrompe la sanitizzazione.