入力からHTMLタグを削除すると、かなり安全なものになると思います。ただし、誰かが本当に混乱したデータをMarkdownに挿入して、さらに混乱した出力を生成する方法を見つけた場合を除きます^^
それでも、ここに私の頭に浮かぶ2つのことがあります:
最初のもの: strip_tags
は奇跡の機能ではありません:いくつかの欠陥があります...
たとえば、このような状況では、「<」の後のすべてが削除されます:
$str = "10 appels is <than 12 apples";
var_dump(strip_tags($str));
私が得る出力は:
string '10 appels is ' (length=13)
これはユーザーにとってそれほど良いことではありません:-(
2つ目: いつの日か、いくつかのHTMLタグ/属性を許可したい場合があります;または、今日でも、Markdownが一部のHTMLタグ/属性を生成しないようにする必要があるかもしれません。
HTMLPurifier のようなものに興味があるかもしれません :保持するタグと属性を指定し、文字列をフィルタリングして、それらだけが残るようにすることができます。
また、有効なHTMLコードを生成します-これは常に優れています;-)