1

私はMySqlとPHP主導のブログ/コメントスタイルのサイトを実行していて、ユーザーが投稿にフォーマットタグ(、、など)を追加できるようにしたいのですが、<bold>htmlentities<italics>のようなものを実行している間、ユーザーは<a>またはのようなものを投稿<div id="footer">してサイトを壊さないでください。

問題は、この問題にどのように対処するかです。htmlentitiesまたは同様の関数に許可されたタグのホワイトリストが含まれるようにしますか?この問題に関する結果や支援を見つけることができませんでした。現在、データベースエンティティに対して行っている階層化の順序は次のとおりです。

$content = nl2br ($_POST["content"]);
$content = mysql_real_escape_string($content);
$content = trim($content);
$content = htmlentities($content);

助けてくれてありがとう。繰り返しになりますが、htmlentitiesは私がこれを達成するために利用したい機能でさえあるのだろうかと思いますので、どんな提案や見どころも大歓迎です!

4

1 に答える 1

2

ホワイトリストは必須です... 2番目のパラメータを指定してstrip_tags()関数を使用します。

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');

エンコードされたhtmlをデータベースに保存しないでください。

于 2012-12-23T08:32:50.313 に答える