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

MySQLに挿入する前にhtmlspecialchars()を使用するのは良いですか?

    他の人が指摘しているように、#2が正解です。必要になるまで「生」のままにして、適切に脱出してください。

    理由を詳しく説明するために(そして他の投稿を繰り返し/要約します)、シナリオ1を論理的に極端なものにしましょう。

    誰かが「' OR 1=1 <other SQL injection> --を入力するとどうなりますか "。SQLを使用しているため、SQL用にエンコードする必要があると判断した可能性があります(パラメーター化されたステートメントを使用しなかったためかもしれません)。したがって、SQLとHTMLのエンコードを混合(または決定)する必要があります。

    突然、上司がXML出力も必要だと判断しました。パターンの一貫性を保つために、そのためにもエンコードする必要があります。

    次のCSV-ああ、いや!テキストに引用符とコンマがある場合はどうなりますか?もっと逃げる!

    ねえ-素敵なインタラクティブなAJAXインターフェースはどうですか?ここで、おそらくJSONをブラウザーに送り返したいと思うので、{、[などすべてを考慮する必要があります。ヘルプ!!

    したがって、明確に、データを指定どおりに保存し(もちろん、ドメインの制約に従います)、必要なときに出力に適切にエンコードします。 。 出力はデータと同じではありません。

    この答えがあまりひいきになっていないことを願っています。他の回答者へのクレジット。




    1. MariaDBでのMAKEDATE()のしくみ

    2. 5プロジェクト開発中のMySqlの有用なクエリ

    3. 単純なWebドキュメントシステム(または基本的なCMS)でRDBMSとフラットファイルを使用することの本当の利点はありますか?

    4. XAMPP-MySQLが予期せずシャットダウンしました