1

アプリケーションでセキュリティチェックを実行しましたが、次の警告が表示されました。

'Parser.GenerateJeffpReport(string)'は、LinkDemandを持つ'Process.Start()'を呼び出します。この呼び出しを行うことにより、「Process.Start()」は間接的にユーザーコードに公開されます。セキュリティ保護を回避する方法を明らかにする可能性のある次のコールスタックを確認します。

私はそれをグーグルで検索し、この質問を見つけました:

このセキュリティ警告はどういう意味ですか(.Netプロセスクラス)?

私は推奨される答えとしてやろうとしました。つまり、次のようにメソッドを設定しました。

[PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")] 

ただし、次の警告が表示されました。

Microsoft.Security:'Parser.ParseJeff(string)'は、'PermissionSetAttribute'のLinkDemandで保護されています。レベル2のセキュリティルールセットでは、代わりにセキュリティクリティカルにすることで保護する必要があります。LinkDemandを削除し、「Parser.ParseJeff(string)」セキュリティクリティカルをマークします。

何をすればよいでしょうか?とにかくそれのすべての意味は何ですか?なぜそれはセキュリティの問題なのですか?このトピックでMicrosoftのドキュメントがまったく役に立たなかった。

4

2 に答える 2

2

交換

[PermissionSetAttribute(SecurityAction.LinkDemand, Name="FullTrust")] 

[ SecurityCritical ]

SecurityCriticalAttributeは、完全な信頼に対するリンク要求に相当します。SecurityCriticalAttributeでマークされたタイプまたはメンバーは、完全に信頼できるコードによってのみ呼び出すことができます。特定の権限を要求する必要はありません。部分的に信頼されたコードから呼び出すことはできません。

于 2012-05-01T12:00:29.740 に答える
0

を使用することもできます[PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")]

于 2015-07-30T19:39:07.800 に答える