私たちがアプリケーションを開発するときは、一般に、自分の管理下にないデータ ソースからのデータを信頼しないという慣例があります。たとえば、次の外部ソース:
これらすべての外部ソースは、悪意のあるデータを (意図的または非意図的に) PHP スクリプトに挿入する可能性のある攻撃ベクトルとなる可能性があります。ユーザー入力を受け入れて出力をレンダリングする PHP スクリプトを作成するのは簡単ですが、安全に実行するには多大な労力が必要です。 Chen Yaojin の 3 段階の斧を導入として使用して、入力のフィルタリング、データの検証、出力のエスケープという 3 つのトリックを紹介します。
入力のフィルタリングとは、安全でない文字をエスケープまたは削除することを意味します。入力データがアプリケーションのストレージ層に到達する前に必ずフィルタリングしてください。これが防御の第一線です。 Web サイトのコメント ボックスが HTML を受け入れる場合、ユーザーは以下に示すように、悪意のある