XSS、SQLインジェクション、サービス拒否などの一般的なWeb攻撃に対する防御方法は何ですか?
編集:ウィキペディアからの説明の下であなたの回答を集めました。そして、完全なリファレンスを得るためにいくつかの質問を追加します。
SQLインジェクション
SQLインジェクションは、アプリケーションのデータベース層で発生するセキュリティの脆弱性を悪用するコードインジェクション手法です。この脆弱性は、SQLステートメントに埋め込まれた文字列リテラルのエスケープ文字に対してユーザー入力が誤ってフィルター処理されているか、ユーザー入力が強く入力されていないために予期せず実行された場合に発生します。これは、あるプログラミング言語またはスクリプト言語が別の言語に埋め込まれている場合に発生する可能性がある、より一般的なクラスの脆弱性のインスタンスです。
- ユーザー入力を信頼せず、できるだけ早く検証してください。
- 生のユーザー入力からSQLを構築しないでください。代わりにパラメーターを使用してください。
クロスサイトスクリプティング(XSS)
クロスサイトスクリプティングは、悪意のあるWebユーザーによる他のユーザーが表示するWebページへのコードインジェクションを可能にするWebアプリケーションに通常見られる一種のコンピューターセキュリティの脆弱性です。このようなコードの例には、HTMLコードやクライアント側のスクリプトが含まれます。攻撃者は、悪用されたクロスサイトスクリプティングの脆弱性を利用して、同一生成元ポリシーなどのアクセス制御を回避できます。
- ユーザーが送信したコンテンツを逐語的に出力または実行しないでください。
- すべての出力をHTMLエンコードします。
サービス拒否攻撃
サービス拒否攻撃(DoS攻撃)または分散型サービス拒否攻撃(DDoS攻撃)は、対象のユーザーがコンピューターリソースを利用できないようにする試みです。DoS攻撃を実行する手段、動機、および標的はさまざまですが、一般に、インターネットサイトまたはサービスが一時的または無期限に効率的またはまったく機能するのを防ぐための1人または複数の人の協調的で悪意のある取り組みで構成されます。 。
プログラムでサービス拒否攻撃を回避することは不可能に思えますが、どう思いますか?
ブルートフォース攻撃
暗号解読では、ブルートフォース攻撃は、多数の可能性を体系的に試すことによって暗号解読スキームを打ち負かす方法です。たとえば、メッセージを復号化するためのキースペース内の多数の可能なキー。ほとんどのスキームでは、ブルートフォース攻撃の理論的な可能性が認識されていますが、計算上実行不可能になるように設定されています。
- あまりにも多くのログイン試行が失敗したときはいつでもアカウントをロックしてください。無制限の再試行を許可しないでください。
- 入力したパスワードが間違っている場合は、遅延を追加します。
いくつかの追加の質問:
コンテンツに応じて入力を投稿しようとするWebロボットについてどう思いますか?たとえば、SOは画像検証を使用しています。
javascript eval関数についてどう思いますか?
外部に公開されていないサーバー上のコンテンツにアクセスする方法はありますか?たとえば、いくつかの重要なレコードをデータベースに挿入するページがありますが、それがURLであることを知っているのは私だけです。この種のファイルを取得する方法はありますか?私はあなたがそれにいくつかのセキュリティルールを設定できることを知っています。
(注:ディレクトリリストは無効になっており、このファイルをホストしています。)
返信ありがとうございます!