なぜPHPアプリにセキュリティホールが多いのか?
【スクリプトインジェクション対策12】データベースなど,内部データを信用しない
この記事を読むのに必要な時間:およそ 0.5 分
既に前の項目で解説済みですが,
たとえ内部システムから取得したデータであっても,
メールサーバから直接ログを取得していたのであればプログラマも危険性を考慮できたかもしれません。別のシステムを経由するとリスクが明白でなくなることがよくあります。本当に信頼できるデータのみ信用できるデータとして扱わなければなりません。これは簡単なようで思ったほど簡単ではありません。システムを拡張する過程で思わぬ脆弱性を作ってしまうことは少なくありません。
対策のまとめ
- データソースを確実に信頼できない限りデータを信用しない
- 内部データであっても安易に信用しない
- システムを拡張する場合は慎重に行う
この記事に関連する書籍
-
Webアプリセキュリティ対策入門〜あなたのサイトは大丈夫?
本書は,Webサイトのセキュリティ確保のために必要な基礎知識と,安全なコードを書くために必要な基礎知識を解説しています。Webアプリケーションは比較的簡単に作成で...
-
はじめてのPHP言語プログラミング入門
Webアプリケーション構築ツールとしてPHPを取り上げた書籍は数多くありますが,言語の解説・入門書としての書籍はあまりありません。 本書は,プログラミング言語として...
バックナンバー
補講
- 【スクリプトインジェクション対策19】ユーザを教育する
- 【スクリプトインジェクション対策18】ログイン処理を正しく実装する
- 【スクリプトインジェクション対策17】パスワードを正しく管理する
- 【スクリプトインジェクション対策16】関連するサイトが利用しているドメイン名の一覧を提供する
- 【スクリプトインジェクション対策15】JavaScriptが無効なクライアントでも利用可能なサイトにする
- 【スクリプトインジェクション対策14】HTML,CSS,JavaScriptの生成はホワイトリスト方式を利用する
- 【スクリプトインジェクション対策13】不正な文字データを保存できないようにする
- 【スクリプトインジェクション対策12】データベースなど,内部データを信用しない
- 【スクリプトインジェクション対策11】エスケープしてはならないデータ以外はすべてエスケープする
- 【スクリプトインジェクション対策10】すべての入力値を可能な限り厳しい条件で検証する