1

ページからページへ安全にデータを渡し、改ざんの可能性を回避する方法を楽しみにしています。


  • それを解決する最善の方法は、機密データを db サーバーに保存することです。
  • または、db サーバーでセッション持続を使用します。
  • または、db サーバーにデータを永続化する方法。

事実は、私がそのような方法を使いたくないというパフォーマンスのためです。

以下の方法が安全かどうかはわかりませんが、試してみたいと思います(でも、可能かどうかはわかりません)。

機密データを暗号化モードでビューステートに保存したいと思います。たとえば、tespage1.aspx でこれを取得し、testpage2.aspx から取得します。

どうすればこれを行うことができますか?それは安全ですか?

前もって感謝します

4

3 に答える 3

2

機密データを保持するカスタム クラスを作成します。

class myCustomeClass
{
    int id;
    string name;
    currency amount;

    '... properties to access

    '... custom methods

    '... etc.
}

あなたが本当に偏執的である場合は、暗号化/復号化の方法を含めてください... 次に、データのフィールドとプロパティを設定します。次に、暗号化します (オプション)。物をキャッシュに入れます...

Cache.Insert("MySensitiveData", myCustomClass, null, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration);

他のページにリダイレクト

Page_Load イベントで

MyCustomClass oSensitiveData;

if (!IsPostBack)
{
    oSensitiveData = (myCustomeClass)Cache["MySensitiveData"];
}

それだけです。データを暗号化した場合は、復号化する必要があります...

これを行うには多くの方法がありますが、これは比較的小さなデータ セットで機能します。大規模なデータ セットを処理している場合は、Sql Sever、mySql などのデータベースを使用して調査し、データの「キャッシュ」として機能することをお勧めします。

于 2010-01-12T19:10:40.893 に答える
0

機密データは、クライアントではなくサーバーに配置することを常にお勧めします。あなたがページに埋め込んだものはすべて責任です。すべてのサーバー側オプションを除外したので、ViewStateは暗号化されているため、私が信じる最善の策であるはずです。Page.enableviewstatemacプロパティを使用して、安全なビューステート転送を行うこともできます。

于 2009-11-20T09:26:06.963 に答える
0

ここには 2 つの問題があります... 1 つは、ViewState が安全ではないことです。デフォルトでは単純な BASE64 エンコーディングです。このデータをサーバーに保存します。それ以外はトラブルを求めています。2 つ目は、正当な理由により、新しいページに移動すると ViewState が失われることです。これは、ある aspx ページから別の aspx ページにデータを渡す方法ではありません。

さらに、パフォーマンス上の理由から、Session ではなく ViewState を選択しても、ほとんどのシナリオでは意味がありません。InProc Session または Cache を使用すると、ViewState よりもはるかに効率的になります。

于 2009-11-20T19:40:42.600 に答える