私はPHPを使用するのが初めてで、最近、元の開発者がMySQLデータベースにクエリを実行する前にmysqli_real_escape_string()
を使用してユーザー入力をサニタイズしていたWebサイトプロジェクトを継承しました。 mysql_real_escape_string() を回避するSQLインジェクションから最近学んだように、データベースは依然として数値フィールドへのSQLインジェクションに対して脆弱であり、代わりに準備されたステートメントを使用する必要があります。
PHPがデータをクリーンアップ、保存、および管理する方法を深く掘り下げているので、私はこのような脆弱性を一度に見つけ続けています。Webで見つけることができるほとんどの情報は今では古くなっています。現在のベストプラクティスのリストを見つけるのは困難です。私のアプリケーションでは、ユーザーパスワードの保存、複数のアクセス許可レベルでのログインの許可、データベースからのデータの取得、ユーザーによるさまざまなフォームの送信などを行う必要があります。
誰もがウェブサイトをプログラムするときに使用するための最良のPHPプラクティスの包括的かつ最新のリストを持っていますか?持っていない場合、新しいPHPプログラマーが作って、どうやってそれを避けるのですか?どんな助けでも大歓迎です。
OWASPの開発者ガイド から始めます。次に、他のOWASPリソースを読み続けます。あなたが具体的にPHPについて言及したので。これが PHP Security Cheat Sheet です。
別の良い読み物はSANSです: " Webアプリ設計のセキュリティチェックリスト "。
これらは、安全なWebサイト/アプリの構築についてよく理解できるはずです。