sql >> データベース >  >> RDS >> Mysql

Markdown(strip_tagsを使用)はXSS攻撃を阻止するのに十分ですか?

    入力から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コードを生成します-これは常に優れています;-)



    1. SQLServer2016クエリストアGUIの調査

    2. Mysqlは2つのテーブルに挿入します

    3. Tomcat6はMySqlに接続できません(ドライバーはサーバーからパケットを受信して​​いません)

    4. Railsでの複数のテーブル結合