セキュリティの脆弱性を防ぐために、Go で POST フォームのサイズを安全に制限するにはどうすればよいですか?
セキュリティのために Go でのフォーム サイズを制限する
POST フォーム リクエストの処理に Go の http パッケージを使用する場合、リクエスト本文のサイズのデフォルト制限は次のとおりです。 10MB。多くの場合これで十分ですが、セキュリティ リスクを軽減するためにこの制限を減らすことが賢明な状況もあります。
フォーム サイズをさらに制限するには、http.MaxBytesReader 関数を使用する方法が推奨されます。この関数は、リクエスト本文から読み取ることができる最大バイト数を制限する新しいリーダーを作成します。例:
r.Body = http.MaxBytesReader(w, r.Body, MaxFileSize) err := r.ParseForm() if err != nil { // Redirect to error page return }
リクエスト本文を http.MaxBytesReader でラップすると、ファイル サイズが指定された制限 MaxFileSize を超えるとリクエストの解析が終了します。ただし、エラー フラグを設定しても接続は自動的に閉じられないことに注意することが重要です。推奨されるアプローチは、Server.ReadTimeout を使用してリクエスト解析の時間制限を設定することです。
複数のハンドラーを処理し、この制限をグローバルに実装したい場合は、次のようなミドルウェア関数を使用できます。
type maxBytesHandler struct { h http.Handler n int64 } func (h *maxBytesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { r.Body = http.MaxBytesReader(w, r.Body, h.n) h.h.ServeHTTP(w, r) }
このミドルウェアをルート ハンドラーにラップして、すべてのリクエストがサイズ制限の対象となるようにすることができます。
これらの手法を実装することで、次のことが可能になります。 POST フォーム リクエストのサイズを効果的に制限し、悪意のある攻撃者による過度のリソース消費やサービス拒否攻撃の悪用を防ぎます。
以上がセキュリティの脆弱性を防ぐために、Go で POST フォームのサイズを安全に制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Go Language Packのインポート:アンダースコアとアンダースコアなしの違いは何ですか?

MySQLクエリ結果リストをGO言語のカスタム構造スライスに変換する方法は?

GOのジェネリックのカスタムタイプ制約を定義するにはどうすればよいですか?

GOでテスト用のモックオブジェクトとスタブを書くにはどうすればよいですか?

トレースツールを使用して、GOアプリケーションの実行フローを理解するにはどうすればよいですか?
