Angular6はローカルドライブのURLをサニタイズします

YakupTürkan

DomSanitizerメソッドを使用して次のタイプのURLをサニタイズしようとしましたが、成功しませんでした

C:\path\to\executable

このURLをサニタイズしてhref値として使用する方法はありますか?

また、値を[]表記でバインドしているので、文字列として補間されていないと確信しています。

ジョエルジョセフ

まず、URLはC:/path/to/executable1つであってはなりませんC:\path\to\executable

http://www.ietf.org/rfc/rfc2396.txtによると、バックスラッシュ文字はURLの有効な文字ではありません

ほとんどのブラウザは、円記号を円記号に変換します。技術的には、URLに円記号が必要な場合は、%5Cを使用してそれらをエンコードする必要があります。

さて、消毒について

bypassSecurityTrustUrl()Angular DomSanitizerで使用安全なURLを返す関数をバインドするだけです。

app.component.html

<a [href]="getlink()"> link  </a>

app.component.ts

import { DomSanitizer} from '@angular/platform-browser';


export class AppComponent  {
  constructor(private sanitizer:DomSanitizer) {    }
  name = 'Angular';

  getlink():SafeUrl {
      return this.sanitizer.bypassSecurityTrustUrl("C:/path/to/executable");
  }
}

推奨

パイプの使用:パイプを作成して、Angularの組み込みのサニタイズを無効にすることができます

safe.pipe.ts

import { Pipe, PipeTransform } from '@angular/core';
import { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';

@Pipe({
  name: 'safe'
})
export class SafePipe implements PipeTransform {

  constructor(protected sanitizer: DomSanitizer) {}

 public transform(value: any, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {
    switch (type) {
            case 'html': return this.sanitizer.bypassSecurityTrustHtml(value);
            case 'style': return this.sanitizer.bypassSecurityTrustStyle(value);
            case 'script': return this.sanitizer.bypassSecurityTrustScript(value);
            case 'url': return this.sanitizer.bypassSecurityTrustUrl(value);
            case 'resourceUrl': return this.sanitizer.bypassSecurityTrustResourceUrl(value);
            default: throw new Error(`Invalid safe type specified: ${type}`);
        }
  }
}

:このパイプサービスをapp.module.tsに挿入することを忘れないでください

import { SafePipe } from './shared/safe-url.pipe';


@NgModule({ declarations: [SafePipe],...});

これで、パイプを使用して組み込みのサニタイズを無効にできます

 <a [href]="'C:/path/to/executable' | safe: 'url'"> link </a>

コードは再利用可能であるため、パイプを使用することをお勧めします。また、作業デモもあります:https//stackblitz.com/edit/angular-vxcvfr

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ローカル変数angular6のサブスクライブ関数からデータを取得します

分類Dev

Angular6はサニタイズされた背景画像を表示します

分類Dev

Angular6のAngularMaterialDatepickerサイズをカスタマイズする

分類Dev

ローカルライブラリをAngular6アプリにインポートする方法は?

分類Dev

Angular6はグローバルなscss見出しスタイルを定義します-ブートストラップ

分類Dev

Angular 6の入力フィールドを明示的にサニタイズする必要がありますか?

分類Dev

Angular6はルートデータを同期的にロードします

分類Dev

Angular6でテーブルの行をドラッグアンドドロップします

分類Dev

Angular6マテリアルの日付ピッカーをカスタマイズする

分類Dev

Angular6は、本番用のサイトを構築するときにエラーが発生します

分類Dev

ObjectListViewは、[フィルター]メニューで使用される文字列をローカライズします

分類Dev

ダイアログ内のAngular6 Primengconfirmdialogはページを非アクティブ化します

分類Dev

カラーバーは、Pythonでサブプロットのサイズを変更します

分類Dev

Railsは、特定のURLのロケールパラメータなしでパスをローカライズします

分類Dev

androidはドローアブルフォルダをサブフォルダにカスタマイズします

分類Dev

pyodbcのサニタイズされたクエリは、フィールド名のみを返します

分類Dev

単一のURLではなくオブジェクトのURLをサニタイズします

分類Dev

複数のAPIを呼び出してAngular6でサブスクライブする方法は?

分類Dev

nodetool tablestats使用されたスペース(ライブ)は、クラスター上のテーブルの合計サイズまたは実行されたノード上のテーブルの合計サイズを示しますか?

分類Dev

Angular 4のフロントエンド用にサーバーからのエラーをカスタマイズしますか?

分類Dev

再開可能なファイルのアップロードは、名前をカスタマイズし、パラメーターを追加します

分類Dev

ローカルホストURLにサブドメインを追加します

分類Dev

Bootstrap4を使用してAngular6のクリック可能なテーブル行にドロップダウンメニューを追加します

分類Dev

ADDMOREボタンを使用してAngular6に複数のファイルをアップロードする方法は?

分類Dev

Google App EngineでPythonでHTMLブロブのアップロードをサニタイズする方法は?

分類Dev

ライブラリ 'netty_transport_native_kqueue_x86_64'をロードできません。他のロードメカニズムを試行しています

分類Dev

外部/サードパーティライブラリのログをカスタマイズする

分類Dev

ハードドライブの読み取り/書き込み速度は、データ消去/消去/サニタイズの速度に影響しますか?

分類Dev

Pythonを使用して、ローカルドライブ(URLではない)の写真をFacebookのファンページにアップロードします

Related 関連記事

  1. 1

    ローカル変数angular6のサブスクライブ関数からデータを取得します

  2. 2

    Angular6はサニタイズされた背景画像を表示します

  3. 3

    Angular6のAngularMaterialDatepickerサイズをカスタマイズする

  4. 4

    ローカルライブラリをAngular6アプリにインポートする方法は?

  5. 5

    Angular6はグローバルなscss見出しスタイルを定義します-ブートストラップ

  6. 6

    Angular 6の入力フィールドを明示的にサニタイズする必要がありますか?

  7. 7

    Angular6はルートデータを同期的にロードします

  8. 8

    Angular6でテーブルの行をドラッグアンドドロップします

  9. 9

    Angular6マテリアルの日付ピッカーをカスタマイズする

  10. 10

    Angular6は、本番用のサイトを構築するときにエラーが発生します

  11. 11

    ObjectListViewは、[フィルター]メニューで使用される文字列をローカライズします

  12. 12

    ダイアログ内のAngular6 Primengconfirmdialogはページを非アクティブ化します

  13. 13

    カラーバーは、Pythonでサブプロットのサイズを変更します

  14. 14

    Railsは、特定のURLのロケールパラメータなしでパスをローカライズします

  15. 15

    androidはドローアブルフォルダをサブフォルダにカスタマイズします

  16. 16

    pyodbcのサニタイズされたクエリは、フィールド名のみを返します

  17. 17

    単一のURLではなくオブジェクトのURLをサニタイズします

  18. 18

    複数のAPIを呼び出してAngular6でサブスクライブする方法は?

  19. 19

    nodetool tablestats使用されたスペース(ライブ)は、クラスター上のテーブルの合計サイズまたは実行されたノード上のテーブルの合計サイズを示しますか?

  20. 20

    Angular 4のフロントエンド用にサーバーからのエラーをカスタマイズしますか?

  21. 21

    再開可能なファイルのアップロードは、名前をカスタマイズし、パラメーターを追加します

  22. 22

    ローカルホストURLにサブドメインを追加します

  23. 23

    Bootstrap4を使用してAngular6のクリック可能なテーブル行にドロップダウンメニューを追加します

  24. 24

    ADDMOREボタンを使用してAngular6に複数のファイルをアップロードする方法は?

  25. 25

    Google App EngineでPythonでHTMLブロブのアップロードをサニタイズする方法は?

  26. 26

    ライブラリ 'netty_transport_native_kqueue_x86_64'をロードできません。他のロードメカニズムを試行しています

  27. 27

    外部/サードパーティライブラリのログをカスタマイズする

  28. 28

    ハードドライブの読み取り/書き込み速度は、データ消去/消去/サニタイズの速度に影響しますか?

  29. 29

    Pythonを使用して、ローカルドライブ(URLではない)の写真をFacebookのファンページにアップロードします

ホットタグ

アーカイブ