フリーエンジニアが答えるPHP大疑問

PHPのプログラミングにはセキュリティホールにご注意を

特集ページ

PHPのセキュリティ対策が実施されない理由

PHPに限らず、どんなシステムでもセキュリティ対策は基本であり、不可欠です。それにもかかわらず、セキュリティ対策がされていない場合も多く存在します。なぜ、そのようなことになるのでしょうか。

セキュリティ対策が脆弱なPHPアプリが多い理由

PHPは初心者にとってもハードルの低い言語であるといいました。それは、初心者が書いたコードが存在する数が多いという可能性も示唆します。脆弱性のあるコードを書いてしまう理由として考えられるのは、セキュリティ対策の基本ともいえる以下の2点を理解していないことが大きな原因となっているように感じています。これからPHPを取得しようとする人は、このような、セキュリティ対策の基本中の基本をまずは理解する必要があるでしょう。

セキュリティ対策は効率性よりも重要である

セキュリティ対策を求める作業とプログラムの効率性を求める作業は、相反する作業になります。
セキュリティ対策をしていくと、システムの処理的には無駄が増えます。セキュリティのために同じような作業を繰り返し、プログラムの効率が下がります。パフォーマンスを意識するあまり、セキュリティ対策を疎かにするケースが少なくないようです。しかし、本来、一番プライオリティが高いのは、セキュリティ対策です。セキュリティを確保することが大前提です。セキュリティ対策が十分にされたうえで、効率性を求めるコードを書くようにしましょう。効率・パフォーマンスのためにセキュリティを犠牲にしてはいけません。

セキュリティ対策の基本を理解する

セキュリティ対策の基本を理解していないプログラマも多いようです。
セキュリティ対策の基本は、インプット・ロジック・アウトプットです。
インプットでは、ユーザに何かを入力させる場面があるとき、プログラマが期待したとおりの入力だけではないということを肝に銘じないといけません。ユーザのスキルも特定できませんので、プログラマやPCに詳しい人では考えられないような入力ケースがあることを理解しなければいけません。インプットにおいては、適切にフィルタをかけることを忘れてはいけません。
ロジックについては、認証の処理などにおいて、不適切なものがないか、抜けがないかを十分にチェックしてください。
アウトプットは、ユーザからのインプットに対し、何かしらの処理をして画面表示をする場面のことをいいます。このとき、適切にエスケープしないと悪意あるユーザの思う壺になってしまいます。

各テーマ一覧

PHPのメリット・デメリット

PHPのメリット・デメリット

詳しくはこちら

PHPに限らずプログラミングで重要なこと

PHPに限らずプログラミングで重要なこと

詳しくはこちら

PHPのセキュリティ対策が実施されない理由

PHPのセキュリティ対策が実施されない理由

詳しくはこちら

PHPがプログラマに嫌われている理由

PHPがプログラマに嫌われている理由

詳しくはこちら

わかりやすいPHP入門書籍が少ない理由

わかりやすいPHP入門書籍が少ない理由

詳しくはこちら

PHPおすすめ書籍「パーフェクトPHP」

PHPおすすめ書籍「パーフェクトPHP」

詳しくはこちら

Copyright © 2014 フリーエンジニアが答えるPHP大疑問 All Rights Reserved.