Web サイトのプログラミングの脆弱性のチェックリスト
-
09-06-2019 - |
解決
から Web アプリケーション セキュリティ プロジェクトを開く:
- の OWASP トップ 10 脆弱性 (pdf)
- より詳細なリストについては、次のとおりです。 カテゴリ:脆弱性
トップ10は次のとおりです。
- クロスサイトスクリプティング (XSS)
- インジェクションの欠陥 (SQL インジェクション、スクリプト インジェクション)
- 悪意のあるファイルの実行
- 安全でない直接オブジェクト参照
- クロスサイト リクエスト フォージェリ (XSRF)
- 情報漏洩と不適切なエラー処理
- 壊れた認証とセッション管理
- 安全でない暗号ストレージ
- 安全でない通信
- URL アクセスを制限できない
他のヒント
OWASP 情報は貴重なリソースであると考えています。以下の点、特に攻撃パターンも興味深いかもしれません。
明らかに、すべてのフィールドで脆弱性をテストします。
- SQL - エスケープ文字列 (例:
mysql_real_escape_string
) - XSS
- 入力フィールドから HTML が出力される (通常は XSS の良い兆候)
- フィールドが作成された特定の目的以外のその他のもの
無限ループを検索します (実際にサーバーを停止させる可能性がある唯一の間接的なもの (多くの人が誤って見つけた場合))。
いくつかの予防テクニック:
XSS
ユーザーからパラメータ/入力を受け取り、それをログまたは Web ページに出力する予定がある場合は、それをサニタイズします (HTML、引用符、JavaScript などに似たものはすべて削除/エスケープします)。ページ自体をサニタイズしてください。たとえば、PHP_SELF を出力するだけでも安全ではありません。消毒してください!反射型 XSS は主に、サニタイズされていないページ パラメータから発生します。
ユーザーから入力を取得して保存または印刷する場合、危険または無効なものが検出された場合は警告し、再入力してもらいます。IDS は検出に適しています (PHPIDS など)。その後、保存/印刷する前にサニタイズします。次に、ストレージ/データベースから何かを印刷するときに、再度サニタイズします。入力 -> IDS/サニタイズ -> 保存 -> サニタイズ -> 出力
開発中にコード スキャナーを使用すると、潜在的に脆弱なコードを発見できます。
XSRF
- 破壊的な機能のためにGETリクエストを使用しないでください投稿を削除しています。代わりに、投稿リクエストのみを受け入れます。GET を使用すると、ハッキングが非常に簡単になります。
- リファラーをチェックして、リクエストがサイトから来たことを確認してください 動作しません. 。紹介者を吹き込むのは難しくありません。
- トークンとしてランダム ハッシュを使用します。トークンはすべてのリクエストに存在し、有効である必要があり、しばらくすると期限切れになります。非表示のフォームフィールドにトークンを出力し、フォームが投稿されるときにサーバー側でそれを確認します。攻撃者はリクエストを偽造するには正しいトークンを提供する必要があり、本物のトークンを入手できたとしても、有効期限が切れる前である必要があります。
SQLインジェクション
- ORM または db 抽象化クラスにはサニタイズ メソッドが必要です。常にそれらを使用してください。ORM または db 抽象化クラスを使用していない場合...そうあるべきです。
SQLインジェクション
XSS (クロスサイトスクリプティング) 攻撃
監視しやすく、修正も簡単です。クライアント側から受け取ったデータのサニタイズ。';'などを確認する悪意のあるコードがアプリケーションに注入されるのを防ぐのに役立ちます。
こんにちは、
セキュリティのための優れた静的分析ツールは次のとおりです。 フローファインダー デヴィッド・ウィーラー著。さまざまなセキュリティエクスプロイトを検出する優れた仕事をします。
ただし、知識のある人にコードを読んでもらうことに代わるものではありません。David が自身の Web ページで述べているように、「ツールを持った愚か者は依然として愚か者です!」
HTH。
乾杯、ロブ
xss や SQL インジェクションなどの複数の欠陥や脆弱性をテストするための優れた Firefox アドオンを入手できます。 セキュリティコンパス. 。残念ながらFirefox 3.0では動作しません。すぐに更新されることを願っています。