0

テキストボックスでPHP ベースのツール HTML Purifierを使用して xss を防止したいのですが、次のことを許可したいと思います。

  1. <b><i>、などの基本的なタグ<u>
  2. リンク
  3. 画像

すべての CSS と JavaScript をブロックしたいと思います。HTML Purifier を試したところ、この場合は失敗しました。この例を見てください。どうすればこれを処理できますか?

また、フォームのすべての単語をカスタム html に置き換えたい#abcdと思います (リンクと推測したように)。これで可能ですか、それとも自分で交換する必要がありますか?@abcd

4

3 に答える 3

4

HTML.Allowed を次のように設定しますb,i,u,a[href],img[src|alt]

ここを参照してください。

于 2011-02-27T14:00:35.600 に答える
-2

PHPには、あなたが望むことを正確に実行しているように見える組み込み関数があります。

http://php.net/manual/en/function.strip-tags.php

ホワイトリスト機能もあるので、いくつかのタグを許可できます。

#abcdとその部分については、そのため@abcdにを使用する必要があると思いますpreg_replace()。私は同様の関数を使用しましたが、それは@abcd非常にうまく機能します:)。

$sClickText = preg_replace("/\@([a-zA-Z0-9_])+/",' <a href="#reply" onClick="reply(\'' . "$0" . '\')">' . "$0" . '</a>',$sInputText);
于 2011-02-27T10:41:40.800 に答える
-2

正規表現とe修飾子

関数checkTag($ tag){
  $ tag = removeslashes($ tag);

  ..。

  $secureTagを返します。
}

$ html = preg_replace( "/ <[^>] +> / e"、 "checkTag('\ $ 0')"、$ input);

于 2011-02-27T10:41:26.277 に答える