これが Stackoverflow に投稿するにはあまりにも漠然としているように思われる場合は、申し訳ありません。
私の会社は、PHP と MySQL を使用して、3 人の開発者を雇って案内広告システムを実装しました。彼らは、フレームワークを使用せずに (フレームワークの使用に反対した)、基本的な機能 (ユーザーの登録と認証、広告のリストとフィルタリングなど) を実装してから 1 か月あまり作業を続けています。ただし、簡単なテストでは、システムが一般的な悪意のある悪用 (CSRF、XSS、ローカル ファイル インクルージョン) に対して脆弱であることが示されています。
コードを調べたところ、サーバー側にデータ検証手順が実装されていないことがわかりました (メールアドレスの検証に正規表現を使用し、SQL インジェクションに対して文字列をサニタイズするために mysqli_real_escape_string() を使用しているだけです)。彼らはいくつかの検証ルーチンを実装しましたが、JavaScript を使用してクライアント側に実装しました。明らかに、これは UI の一部であり、悪意のあるユーザーに対してセキュリティを提供するものではありません。
彼らは、完全な Web アプリケーションをゼロから開発するには 3 人の開発者では不十分なので (同意します)、特定の期限に間に合わせるために、最初に機能を実装し、次にそれらを適切に保護するつもりであると主張しています。私は決して経験豊富なプログラマーではありませんが、事後的にセキュリティを実装するには時間がかかると思います。さらに、彼らが何とかそれを行うことができたとしても、最初から実装されたデータ サニタイズ ルーチンと比較すると、標準以下になるでしょう。
そこで、私の質問は次のとおりです。(i) 機能を実装した後にセキュリティを実装する (つまり、少なくとも適切なサニタイズ ルーチンを実装する) ことは合理的ですか? (ii) (i) の答えが「いいえ」の場合、セキュリティが十分に扱われていないプロジェクトを管理するために、どの参考文献、セキュリティ フレームワーク (ただし、それらは Web フレームワーク自体に埋め込まれていると思います) などをお勧めしますか?