owaspリンクを持つハビエルの答えは良いスタートです。
さらにできることがいくつかあります:
-
SQLインジェクション攻撃に関しては、次のように、「DROP」や「DELETE*WHERE」などの一般的なSQLステートメントを入力から削除する関数を記述できます。
* $ sqlarray =array( "DROP"、 "or 1 =1"、 "union select"、 "SELECT * FROM"、 "select host"、 "create table"、 "FROM users"、 "users WHERE"); *
次に、この配列に対して入力をチェックする関数を記述します。 $sqlarray内のものがユーザーからの一般的な入力にならないようにしてください。 (これにはstrtolowerを使用することを忘れないでください。ありがとうございます。)
-
memcacheがPHP4で機能するかどうかはわかりませんが、プロセス.phpページへの特定のリモートIPアクセスをY期間にX回だけ許可することで、memcacheを使用してスパム保護を導入できます。
-
特権は重要です。挿入権限(注文処理など)のみが必要な場合は、注文処理ページで、挿入権限と選択権限のみを持つユーザーを使用してデータベースにログインする必要があります。これは、SQLインジェクションが成功した場合でも、INSERT / SELECTクエリのみを実行でき、削除や再構築は実行できないことを意味します。
-
重要なphp処理ファイルを/includeなどのディレクトリに配置します。次に、その/includeディレクトリへのすべてのIPアクセスを禁止します。
-
ソルトされたMD5をユーザーのエージェント+remoteip+ソルトとともにユーザーのセッションに配置し、ページが読み込まれるたびに、正しいMD5がCookieに含まれていることを確認します。
-
特定のヘッダーを禁止します( http://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST )。 PUT(ファイルのアップロードが必要ない場合)/ TRACE / CONNECT/DELETEヘッダーを禁止します。