1

私は、1 つの ASP.net + c# [.net バージョン 3.5] アプリケーションのメンテナンスに取り組んでいます。要件は、アプリケーション全体で、DAL レイヤーに渡された文字列変数が指定された単語と記号についてチェックされる必要があることです。

この場合、各メソッドを実行し、次に各文字列パラメーターを実行して特定の単語と記号をチェックする必要があり、これには多くの時間がかかります。だから私は可能かどうかわからない1つのアプローチを考えています

BLL 層から DAL 層クラスの任意のメソッドを呼び出す要求が行われるたびに、DAL 層の下で定義された共通メソッドが、実際の DAL メソッドに渡されたすべての引数と共に自動的に呼び出される必要があります (この共通メソッドは、DAL のコンストラクターに抵抗するはずでした)。一般的なメソッドでは、すべての文字列パラメーターをチェックし、必要に応じて値を変更することになっていました。このメソッドから戻った後、実際のメソッドは変更された値で呼び出されます。

これが不可能な場合は、最小限の労力で他のアプローチを提案してください。

4

2 に答える 2

2

このような機能を実現する唯一の方法は、次のようなアスペクト指向プログラミング ライブラリを使用することです。.Net での AOP の最適な実装は?

ユーザーが SQL インジェクションを作成しようとしていないことを確認する必要があるようです。まず第一に、適切に設計されたアプリケーションは SQL インジェクションの可能性すら生み出さないため、そのような検証は必要ありません。他の要件で (そのような試行をログに記録するために) 必要な場合は、代わりに HTTP 要求レベルでそれを行います。を作成できます(または、オブジェクト内のすべての値を確認して、悪い単語などが含まれているかどうかを確認IHttpModuleするコードを記述します。global.asaxRequest

protected void Application_PostAuthorizeRequest(object sender, EventArgs e)
{
    var collection = this.Context.Request.Params;
    foreach (var key in collection.Keys)
    {
        if (ContainsBadWords(collection[key]))
            Log("Request key " + key + " contains bad words: " + collection[key]);
    }
}
于 2013-03-13T15:01:45.847 に答える
2

AOP Fameworks の 1 つを使用して、DAL メソッドにコードを挿入できます。 Postsharpは優れたものの 1 つです。

于 2013-03-13T15:00:06.927 に答える