私は、誰もが好きなように入力できるようなシステムを持っています。<img SRC="..."/>
ただし、<a href="..."></a>
などのタグを使用しているようにも見える場合があります。
どうすればこれを正確に防ぐことができますか?たとえば、誰か<h1>Hello</h1>
がテキストを入力しても大きくはなりませんが、表示されるだけです<h1>Hello</h1>
。
これが不可能な場合は、別の方法を教えてください。
HTMLを記述どおりに表示するには、特殊文字&、<、>を使用して「エスケープ」する必要がありますhtmlspecialchars()
。
または、すべてのタグを削除して、残りのテキストを次のように表示することもできます。strip_tags()
印刷する文字列にhtmlentitiesを使用するだけです
特別な文字またはタグは、異なる要素として扱われます。データベースにテキストを挿入する前に、htmlspecialcharacters($ string_to_be_inserted)を使用してhtmlタグをエスケープできます。
すべてのhtmlタグが削除され、テキストのみがデータベースに挿入されます。
お役に立てれば
HTMLPurifierを使用して、ユーザー入力から不要なHTMLタグを取り除くこともできます
htmlspecialchars_decode()関数を使用します。それは私にとってはうまくいきます...
ガイドラインを使用する
コード付きのテキスト
<?php
$text = "
<html>
<head>
<title>Page Title</title>
</head>
<body>
Reference site about Lorem Ipsum, giving information on its origins, as well as a random Lipsum generator.
</body>
</html> ";
OR
$text = $row['columnname']; // Here define your database table column name.
echo htmlspecialchars_decode($text);
?>
出力:
Lorem Ipsumに関するリファレンスサイト。その起源に関する情報と、ランダムなLipsumジェネレーターが記載されています。