2

ユーザーがフォーム入力の一部として HTML コードを提供する必要がある場合 (テキストエリアなど)、Anti-Samy ポリシーを使用して、許可されていない危険な HTML を除外することを理解しています。

ただし、テキストのみにする必要があるテキストフィールドとテキスト領域がいくつかあります。これらのフィールドから DB に HTML コードを挿入する必要はまったくありません。

したがって、生のテキストのみがデータベースに挿入されるように、入力をサニタイズしようとしています。私はこれを2つの方法で行うことができると信じています:

  1. 正規表現を使用して HTML コードを除外します。#REReplaceNoCase(FORM.InputField, "[^a-zA-Z\d\s:]", "", "ALL")#
  2. 厳格なテキストのみの Anti-Samy ポリシーを使用する

ユーザーが入力した HTML コードをテキストフィールドから削除するための正しい/適切な方法はどれですか。または、他に利用できるオプションはありますか?

4

1 に答える 1

0

AntiSamy を使用してそれを行うこともできますが、それがどれほど賢明かはわかりません。その柔軟性の目的をちょっと破っていると思います。たとえ最小限であっても、それを正規表現だけのフィルターとして実行するオーバーヘッドに興味があります。

個人的には、このシナリオではおそらく正規表現ルートを選択します。あなたの例は、括弧を取り除くだけのようです。それはあなたの状況で受け入れられますか?(単なる例であれば理解できます)おそらく次のようなものを使用します。

reReplace(string, "<[^>]*>", "", "ALL");
于 2015-06-12T03:58:07.670 に答える