サイトのデザインと使用方法のあらゆる面で警戒が必要です。アプリケーションを強化するために何ができるのかを理解するのに役立ちます。アプリケーションのセキュリティに対する最も一般的な脅威と、サイトがハッキングされるリスクを減らすためにできることを理解する。サイトのセキュリティとは?インターネットは危険な場所です。情報を表示したりすることがあります。サイトの利用者を個人的な当惑と経済的リスクの両方にさらしています。種類の攻撃を防ぐことです。サイトを保護することです。サイト全体にわたる設計作業が必要です。フレームワークを使用している場合、多くの一般的な攻撃に対して「デフォルトで」堅牢でよく考え抜かれた防御メカニズムがほぼ確実に有効になります。サーバの設定を通じて軽減できます。最後に、明らかな間違いを犯したかどうかを確認するのに役立つ、公開されている脆弱性スキャナツールがあります。この記事の残りの部分では、いくつかの一般的な脅威と、サイトを保護するために実行できる簡単な手順の詳細について説明します。サイトのセキュリティについて考え始めるのに役立つように設計されていますが、網羅的なものではありません。サイトの脅威をいくつか紹介し、それらがどのように軽減されるのかを示します。お読みになったところでは、Webアプリケーションがブラウザから来るデータについて信頼しているか、または十分に妄想的ではない場合に、脅威が最も効果的であることに注意してください。サイトを通じて他のユーザのブラウザにクライアントサイドのスクリプトを挿入することを可能にする一連の攻撃を表すために使用される用語です。攻撃者に送信するなどのことが可能です。持っていると、あたかもユーザであるかのようにサイトにログインし、クレジットカードの詳細へのアクセス、連絡先の詳細の表示、パスワードの変更など、ユーザができることなら何でもできます。脆弱性は、他のどの種類のセキュリティの脅威よりも歴史的に一般的です。脆弱性は、サイトが挿入されたスクリプトをブラウザに返す方法に基づいて、反映型と永続型に分けられます。脆弱性が反映されます。元のユーザコンテンツのスクリプトはすべて、新しいページが読み込まれたときに実行されます。検索語がURLパラメータとしてエンコードされ、これらの語が結果と一緒に表示されるサイト検索機能を考えてみましょう。作成し、それを別のユーザにメールで送信することができます。ターゲットユーザがこの「関連リンク」をクリックすると、検索結果が表示されたときにスクリプトが実行されます。説明したように、これにより攻撃者はターゲットユーザとしてサイトに入るために必要なすべての情報が得られ、ユーザとして購入したり、連絡先情報を共有したりする可能性があります。含むコメントを受け付けるディスカッション掲示板は、攻撃者からの悪意のあるスクリプトが埋め込まれる可能性があります。コメントが表示されると、スクリプトが実行され、ユーザのアカウントにアクセスするために必要な情報が攻撃者に送信される可能性があります。この種の攻撃は非常に有名で強力です。攻撃者は被害者と直接関わりさえしないかもしれないからです。データやアップロードされて表示されるユーザファイルなど、ブラウザからのデータはすべて潜在的に脆弱です。脆弱性に対する最善の防御策は、コードを実行するための指示を含む可能性があるマークアップを削除または無効にすることです。スクリプトを実行したり、サーバコードの実行に影響を与えたりすることができないようにユーザデータを変更するプロセスは、入力サニタイズと呼ばれます。フォームからのユーザ入力を自動的にサニタイズします。コードを実行することができ、ユーザの許可に関係なくデータへのアクセス、変更、削除ができます。作成したり、サーバ上のすべてのデータにアクセスしたり、データを破壊または変更して使用できなくなる可能性があります。インジェクションがあります。ステートメントに渡されるユーザ入力がステートメントの意味を変更する可能性がある場合に、この脆弱性が存在します。持つすべてのユーザを一覧表示することを目的としています。"';"ユーザが実名を指定した場合、そのステートメントは意図したとおりに機能します。ステートメントの動作を次の例の新しいステートメントに完全に変更する可能性があります。元の文を完成させるために機能します。クエリに渡されるユーザデータがクエリの性質を変更できないようにする必要があります。特別な意味を持つユーザ入力内のすべての文字をエスケープすることです。文字を文字列リテラルの開始と終了として扱います。文字をエスケープします。(これは非常に奇妙な名前ですが、有害ではありません)。フレームワークはしばしばあなたのためにエスケープする文字の面倒を見るでしょう。渡されたユーザデータが確実にエスケープされるようにします。このセクションはここウィキペディアの情報に大きく依存しています。攻撃は、悪意のあるユーザが他のユーザの資格情報を使用して、そのユーザの知らないうちに同意なしでアクションを実行することを可能にします。この種の攻撃は、例で最もよく説明されています。リクエストを使用して特定のアカウントに送金できることを知っている悪意のあるユーザです。サイトへのリンクとして偽装)。追加するのは通常のブラウザの動作です)。チェックし、それらを使用してユーザがログインしていてトランザクションを実行する権限を持っているかどうかを判断します。ボタンをクリックしたすべてのユーザが取引を行うことになります。アクセスする必要がないことです。ユーザのブラウザはこの情報を保存し、関連するサーバへのすべてのリクエストに自動的に含めます。リクエストにユーザ固有のサイト生成のシークレット情報を含めることを要求することです。フォームを送信するときに、シークレットがサーバによって提供されます。独自のフォームを作成できません。彼がシークレットを見つけて特定のユーザのためにフォームを作成したとしても、彼はもはやその同じフォームを使用してすべてのユーザを攻撃することはできないでしょう。防止メカニズムが含まれていることがよくあります。その他の脅威その他の一般的な攻撃/脆弱性は次のとおりです。クリックジャッキング。この攻撃では、悪意のあるユーザが目に見えるトップレベルサイトのクリックをハイジャックし、その下にある非表示のページにルーティングします。ログイン資格情報をキャプチャするために使用されるかもしれません。クリックジャックを使用して、表示されているサイト上のボタンをユーザにクリックさせることもできますが、実際にはまったく違うボタンを無意識にクリックしています。ヘッダを設定することで防ぐことができます。通常、正当なユーザのサイトへのアクセスが妨害されるように、偽のリクエストで対象のサイトをあふれさせることで達成されます。防御は通常、正当なメッセージの通過を許可しながら、「悪い」トラフィックを識別してブロックすることによって機能します。アプリケーション自体の一部ではありません)。サーバのファイルシステムのアクセスできない部分にアクセスを試みます。渡すことができる場合に発生します。解決策は、使用する前に入力をサニタイズすることです。ファイルインクルード。この攻撃では、ユーザはサーバに渡されたデータを表示または実行するための「意図しない」ファイルを指定することができます。解決策は、使用する前に入力をサニタイズすることです。コマンドインジェクション。任意のシステムコマンドを実行することができます。解決策は、システムコールで使用される前にユーザ入力をサニタイズすることです。アプリケーションがブラウザからのデータを信頼している場合、前のセクションのセキュリティ上の悪用のほとんどすべてが成功します。ファイルシステムの呼び出しに渡される前に、すべてのユーザ発信データをサニタイズする必要があります。サイトのセキュリティについて学ぶことができる最も重要な教訓は、ブラウザからのデータを決して信用しないことです。パラメータのデータが含まれますが、これらに限りません。すべての受信データを常にチェックしてサニタイズしてください。常に最悪の事態を想定してください。あなたが取ることができる他の具体的なステップはいくつかあります:より効果的なパスワード管理を使用してください。定期的に変更される強力なパスワードを推奨します。入力する必要があるように、サイトの2要素認証を検討してください。クライアントとサーバ間で送信されるデータを暗号化します。リクエストデータ、およびヘッダ情報が攻撃者に容易に利用されないようになります。追跡し、最も一般的な脆弱性を最初に解決します。サイトで自動セキュリティテストを実行するには、脆弱性スキャンツールを使用してください。ここでしているようなバグ報奨金を提供することによってバグが見つかるかもしれません。必要なデータのみを保存して表示してください。ユーザがクレジットカード情報などの機密情報を保存する必要がある場合は、ユーザが識別できるだけの十分なカード番号を表示してください。すれば攻撃者がそれをコピーして別のサイトで使用することはできません。現時点で最も一般的なパターンは、クレジットカード番号の最後の4桁だけを表示することです。フレームワークは、より一般的な脆弱性の多くを軽減するのに役立ちます。サイトが保護しようとする一般的な脅威について説明しました。ブラウザからのデータを信頼できないということです。クエリやファイルシステムコールで使用する必要があります。この記事で、モジュールの終わりに来ました。サイトプログラミングの最初のステップをカバーしました。これらの基本概念を学んで楽しんでいただければ幸いです。フレームワークを選択してプログラミングを開始する準備が整いました。inbox.現在、ニュースレターは英語でのみ提供されています。従って私の個人情報を扱うことに同意します。