2

表示したいユーザーからの安全でない文字列があります。

  • < strong > (スペースなし) のようないくつかの html タグが機能するようにします。
  • 他のすべての html は、入力したとおりに表示する必要があります (つまり、< を & lt; に置き換える必要があります)。

ngSanitize を使用してこれを行うことができると確信していますが、方法がわかりません。

4

2 に答える 2

3

$compileProviderHREF および SRC URL のサニタイズ「ホワイトリスト」を設定できます。

app.config(function($compileProvider) {
    var imgSrcSanitizationWhitelist = /^\s*(https?|ftp|file):|data:image\//;
    $compileProvider.imgSrcSanitizationWhitelist(imgSrcSanitizationWhitelist);
});

ただし、「安全な」タグのホワイトリストはハードコードされており、同じ方法で変更することはできません. ここのソースでリストを見ることができます:

https://github.com/angular/angular.js/blob/master/src/ngSanitize/sanitize.js#L186

この機能を強化するオープン リクエストがあります。

https://github.com/angular/angular.js/issues/5900

しかし、それは(まだ)完成していません。

それまでの間、いくつかのオプションがあります。

  1. プロジェクトを「フォーク」し、目的に合わせて ngSanitize を調整します。ほとんどの人は、このように「コアをハック」することを好みませんが、このようなことができるのは、オープン ソースの要点です。このモジュールはあまり変更されていないため、プロジェクトを開発する際に比較的最新の状態に保つことが難しくなります。
  2. そこで定義されたリストを使用します。ほとんどの場合、このリストは実際には非常に優れていますが、IMG または A HREF タグが壊れているだけです。これは、タグがフィルター処理されているためではありません。これは、これらのタグが個別にホワイトリストに登録されているためです。上記の手法を使用して、これらの各タグに特定の URL を「安全」として受け入れることができます。
于 2014-12-15T16:26:58.520 に答える
0

ちなみに、可能性はあります。

于 2019-09-06T08:45:54.390 に答える