プログラミングをする際には、思い描いた理想の機能を実現するために、単に動くだけでは無く、より使いやすく安全な物の完成を目指す必要があります。
上記のように、PHPプログラミングの際にできるようになった方が良いことをまとめましたが、今回は、「想像してプログラミングすべきこと」について、簡単ではありますが、まとめさせていただきます。
各種攻撃の仕組みを理解して対処法を想像する
XSSやSQLインジェクションという言葉自体は、皆さんおそらくご存じで、また、それを防止する基本的な方法論もご存じでしょう\
ただし、具体的な攻撃方法や成立条件、その成立条件を崩すクリティカルな手法という、裏側のことまで正しく理解しているかとなると、これは、ネット上で探しても簡単に解説は見つかりません。
単にサードパーティの製品に任せきりというのも、予算と責任範囲がしっかりしていれば問題ないのかもしれませんが、実際にご自身が書くプログラムにおいても、こうした水際対策が採られているということは、重要な事ではないかと思われます。
効率的な記述方法を想像する
forとwhileどちらが早いのか、ifとswitchどちらが適切か、SQLの書き方としてサブクエリかWITH句か・・・など、同じ結果を得るにしても、『どのような状況でもコレが早い』『こういう条件だったらアレが早い』など、インターネット上でもベンチマークテスト結果や質疑応答が多数あります。
如何に素晴らしいネットワーク・ハード・ソフトを用意しても、最終的にPHPプログラムの書き方が効率的でなければ、台無しです。
もちろん、ユーザー定義関数としてメインフローから切り出した部分がボトルネックになるということもあり、書き方ひとつで、同接数やハードウェアリソースに大きく影響を及ぼします。
尚、PHPを扱う方であれば、データベース(MySQL、MariaDB)は切っても切れない関係ですので、SQL文周りのチューニング、テーブル設計まで含み、パフォーマンスに気を払うくらいまでは考えることができるレベルになると、実力があるプログラマーといえるのではないでしょうか。
横入りされないようにアクセス制限を想像する
.htaccessによる単純な接続元によるアクセス制限だけではなく、例えば、『問い合わせフォームのメール送信プログラムファイルに外部から直撃できてしまう』『SQL文実行部に外部から直撃できてしまう』『入力文字によって裏側のエラーを画面に出力できてしまう』などをしっかりと防止するよう、プログラム上でのアクセス制限を考えて、ファイル構成や処理構造と処理順を構築することは必要です。
フロントエンド側としっかり意思疎通する
『送信ボタンを押したら、数秒処理がかかる』この場合、利用者はおそらく、『あれ?動かない?』とボタンを連打してしまうことでしょう。
プログラマーから、フロントエンドエンジニアに対して、『ここは処理が重いから、クライアントサイドでボタン連打防止や、ローダーを出すなどの工夫をお願いします。』など、申し送りが必要です。(一人でサーバサイドもフロントエンドも作るのであれば自分自身でこれに気付いて対処が必要です。)
以上のようなことは、中々インターネット上に体系的なものが無い物事で、専門書、有識者の講演、学習講座などによって知りうる可能性が高いものです。
実践的かつ重要なことですので、一度学んでおくことをお勧めします。