0

一部の変数 (または構成エントリなど) にユーザー提供のコンテンツが含まれていることをプログラマーにすばやく警告する適切なコーディング規則を知っていますか? 私は、エスケープされていないコンテンツを HTML/JavaScript/HTTP に貼り付けた結果であるいくつかの攻撃ベクトル (XSS など) の認識を高めようとしています。

例えば:

String UserName_UNTRUSTED = readUrlParam("username");

明確にするために追加しました: 私は特にJavaコーディング規約を探しています。

4

2 に答える 2

1

GWT はSafeHtmlのようなクラスを使用します。

これは、Java の強い型付けを使用して、SafeHtml インスタンスが正しく作成されている限り、エスケープされていないユーザー コンテンツがページに到達するのを防ぎます。エスケープ、連結、および安全な定数の使用にはさまざまな方法があります。一貫した方法で SafeHtml を使用することで、変数がどこから来たのか、何をエスケープする必要があるのか​​を簡単に追跡できます。

同じ考え方は、一般的な Java プログラムでも使用できます。

于 2012-11-30T14:26:07.290 に答える
1

1つの良いオプションは次のようなものです:

ユーザーからのすべての文字列は変数 (またはデータベースの列) に格納され、名前は接頭辞 "us" (Unsafe String) で始まる必要があります。HTML でエンコードされた、または既知の安全な場所から取得されたすべての文字列は、プレフィックス "s" (安全な文字列) で始まる名前の変数に格納する必要があります。

これは、Joel の命名規則に関する投稿から引用したものです。完全に読むことができます: http://www.joelonsoftware.com/articles/Wrong.html

于 2012-11-30T13:54:53.360 に答える