14章セキュリティ
PHPは非常に柔軟な言語で、PHPを実行しているマシンが提供するほとんどのAPIにアクセスできる仕組みを備えています。もともとHTMLページのフォームを処理する言語として設計されているので、PHPではフォームデータを容易に操作することができます。ただしこれは諸刃の剣で、プログラムを素早く作成できるようにするPHPの機能そのものが、システムに侵入しようとする攻撃者に手を貸すことになります。
PHP自体に危険性はなく、安全性もありません。ウェブアプリケーションのセキュリティは、記述するコードによって決まります。たとえば、フォームパラメータとして、開くファイルの名前を渡すスクリプトには、リモートURLや絶対パス、相対パスすらも渡すことができます。これは、サイトのドキュメントルートでない場所にあるファイルも開けるということで、パスワードを書いたファイルやその他の秘密情報が暴露されてしまう恐れがある、ということです。
ウェブアプリケーションのセキュリティの歴史はまだ日が浅く、日々進化しています。セキュリティについて1章分の説明だけでは、攻撃の備えとしては不十分です。そこで本章では実用的な側面を重視し、広く知られる危険な攻撃からアプリケーションを守るする方法など、セキュリティに関連するトピックを厳選して取り上げます。また本章の最後では、セキュリティに関するポイントを、いくつかのヒントも加えてまとめています。
14.1 セーフガード
セキュアな(安全で堅牢な)サイトを開発しようとするとき、理解しておくべき最も重要なことの1つは、アプリケーション自体で生成した情報でないものは汚染されている恐れがあり、疑ってかかる必要がある、ということです。具体的には、フォームやファイル、データベースからのデータなどがその対象になります。常に保護、つまりセーフガードを整えておく必要があるのです。 ...
Get プログラミングPHP 第4版 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.