Question

Je me réjouis d'une méthode pour transmettre des données d'une page à éviter en toute sécurité et comme il est possible que la mauvaise manipulation.


  • La meilleure façon de le résoudre, est de sauvegarder les données sensibles sur le serveur db.
  • Ou en utilisant la session persistent sur le serveur db.
  • ou toute autre méthode qui persiste des données sur le serveur db.

Le fait est à cause de la performance que je ne voudrais pas utiliser ces méthodes.

Je ne sais pas si ce qui suit est un moyen sûr, mais je voudrais le tester. (Mais je ne sais pas s'il est possible)

Je voudrais enregistrer les données sensibles dans viewstate dans le chiffrement mode..for ex dans tespage1.aspx et récupérer de ce testpage2.aspx.

Comment puis-je faire cela, et est-il sécuritaire?

Merci d'avance

Était-ce utile?

La solution

Créer une classe personnalisée pour stocker vos données sensibles.

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

    '... properties to access

    '... custom methods

    '... etc.
}

Si vous êtes vraiment paranoïaque incluent des méthodes de cryptage / décryptage ... Maintenant, mettre en place des champs et des propriétés pour les données. Ensuite, Crypter (en option). Mettez la chose dans le cache ...

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

rediriger vers votre autre page

Dans le cas Page_Load

MyCustomClass oSensitiveData;

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

C'est, vous avez vos données, si vous il chiffré, vous devez maintenant le déchiffrer ...

Il existe une multitude de façons de le faire, mais celui-ci travaille pour moi avec des ensembles de données relativement faibles. Si vous faites de grands ensembles de données, vous pouvez explorer en utilisant une base de données tels que Sql Sever, Mysql, etc ... pour agir comme un « cache » pour les données.

Autres conseils

Il est toujours recommandé que les données sensibles, devraient être dans le serveur non avec le client. Tout ce que vous intégrez dans la page est une responsabilité. Puisque vous avez éliminé toutes les options côté serveur, ViewState doit être le meilleur pari que je crois en raison de son cryptage. Vous pouvez également utiliser la propriété Page.enableviewstatemac d'avoir même transfert viewstate sécurisé.

Deux problèmes ici ... Un, ViewState n'est pas sûr. Par défaut, il est juste un simple encodage base64. Sauvegardez ces données sur le serveur, période. Tout le reste est d'avoir des ennuis. Deux, ViewState est perdu quand vous allez à une nouvelle page, pour une bonne raison. Ce n'est pas comment vous transmettre des données d'une page ASPX à l'autre.

En outre, le choix ViewState sur session pour des raisons de performance n'a pas de sens dans la plupart des scénarios. L'utilisation session InProc ou cache va être beaucoup plus efficace que ViewState.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top