0

画像ギャラリーがあり、次の方法で画像をレンダリングしています

<a href="/Gallery/GetImage?Name=sample.jpg>Imagename</a> //user clicks hyperlink to download file

<img src=""/Gallery/GetImage?Name=sample.jpg"> //Displaying the image

私のGetImage()関数は、画像を取得して返す場所の下にあります。

    public ActionResult GetImage(string Name)
    {
        ..
        ...
        return File(FilePath, Type, Name); //Filepath - server folder where image located
                                            //Name is File name
    }

これはセキュリティ違反ですか。エラーは、ファイルを返す行に表示されます。

これを処理できるより良い方法はありますか?

この違反を回避するにはどうすればよいですか?

どんな提案でも大歓迎です

ありがとう

4

2 に答える 2

0

この質問はかなり古いですが、カルマは回るはずなので、この問題をどのように解決したかをお見せしたいと思います。

私は ESAPI API を利用する傾向があります。veracode スキャナは、安全と見なされる「サニタイズされた」値への割り当てを探しているようです。ここで ESAPI ライブラリを確認してください https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCcQFjABahUKEwiCv-PvuIXGAhWNL4gKHYUBDmA&url=http%3A%2F%2Fcode.google.com %2Fp%2Fowasp-esapi-java%2Fdownloads%2Flist&ei=FFh4VYLlBo3foASFg7iABg&usg=AFQjCNGT7pjqMzlKl2yM1K_uM7GFwwYiDA&sig2=rK3zE8o2znde3bf66Q8Q_w . ユーティリティ メソッドはありますが、私は常に getValidInput メソッドに頼っています。これは、サニタイズするのに十分なほど低レベルであり、既存の機能にプラグインするのに十分な柔軟性があるためです。

これは次のようになります。

public ActionResult GetImage(string Name) Throws 
{
    ..
    ...
    string sanitizedInput = ESAPI.validator().getValidInput("FileName", Name, "FileName", true);
    return File(FilePath, Type, sanitizedInput ); 

}

API の完全な仕様については、ドキュメントを確認してください。

このパターンは、私が遭遇した CWE-73 だけでなく他の問題のほとんどでもうまく機能するようです。

于 2015-06-10T15:31:58.723 に答える
0

「セキュリティ違反」とは別に、クエリ文字列を介してファイル名を渡すことはお勧めできません。攻撃者がアプリケーションのソース コードを表示したり、Linux 環境で「etc/passwd」ファイルなどの内部情報を開示したりするファイル インクルージョン攻撃を許可する可能性があります。

ファイルパスとタイプをハードコーディングしたとしても、これはバイパスされる可能性がある保護です。

「可能なファイル名またはパスの外部制御」の詳細については、http: //cwe.mitre.org/data/definitions/73.htmlをご覧ください。

説明 概要 このソフトウェアでは、ファイルシステム操作で使用されるパスまたはファイル名を制御または影響を与えるユーザー入力が可能です。

詳細な説明 これにより、攻撃者は、システム ファイルまたはアプリケーションにとって重要なその他のファイルにアクセスしたり、それらを変更したりできる可能性があります。パス操作エラーは、次の 2 つの条件が満たされた場合に発生します。 1. 攻撃者は、ファイル システムの操作で使用されるパスを指定できます。2. リソースを指定することにより、攻撃者は他の方法では許可されない機能を取得します。たとえば、このプログラムは攻撃者に、指定されたファイルを上書きしたり、攻撃者が制御する構成で実行したりする機能を与える可能性があります。

セキュリティ違反に関して、そのエラーはどのような特定のコンテキストで発生していますか?

于 2013-12-05T14:47:06.210 に答える