Est EnableViewStateMAC=true obligatoire pour ViewStateEncryption dans un ASP.Net Site web?
Je suis actuellement à la résolution de quelques problèmes de Sécurité dans notre ASP.net site web de l'application.
L'un des problème est que le ViewState
n'a pas été chiffré.
Donc je n'ai vérifier sur StackOverFlow et d'ailleurs sur la façon de chiffrer le viewState, et je l'ai fait à l'aide de la <pages viewStateEncryptionMode="Always" />
et l'ajout d'un 3DES machinekey comme ce <machineKey validation="3DES" />
dans le Web.config .
Je voudrais savoir si le "EnableViewStateMAC=true"
est également obligatoirement nécessaire? depuis cela a été mentionné dans certaines des solutions proposées, j'avais trouvé en ligne.
Mais, sur mes chèques, j'ai trouvé le chiffrement fonctionne même sans cette.
[NOTE: j'ai eu à faire ces changements au niveau de l'application (Web.config) depuis la fabrication de chaque changement de page n'est pas une solution pratique pour cette application.]
OriginalL'auteur Tx36 | 2012-12-27
Vous devez vous connecter pour publier un commentaire.
Ne jamais défini EnableViewStateMac à faux, même si le chiffrement est activé. Le MAC garantit que le client ne peut pas malicieusement altérer le contenu de l'état d'affichage. (Le chiffrement lui-même n'est pas suffisante pour garantir la ce; le MAC est nécessaire.)
De la EnableViewStateMac propriété sera supprimée dans une future version du produit puisqu'il n'y a aucune raison valable de mettre la valeur 'false'.
N'a pas d'importance. EnableViewStateMac protège plus que juste ViewState, il devrait donc jamais être définie sur false. IL N'Y A PAS D'EXCEPTIONS À CETTE RÈGLE.
Et... 10 mois plus tard @Levi vient d'annoncer sur Twitter que même si vous affectez la valeur false, il sera ignoré. Comme Lévi dit, pas d'exceptions et maintenant, si votre code dépendent de cela, il va se casser. 🙂
OriginalL'auteur Levi
Juste au cas où:
plus de détails ici: ASP.NET 4.5.2 et EnableViewStateMac
OriginalL'auteur Dmitry Pavlov
Il est recommandé de noter que, à compter de septembre 2014
Toutes les versions de la ASP.NET d'exécution 1.1 - 4.5.2 interdisent maintenant de réglage
et
http://blogs.msdn.com/b/webdev/archive/2014/09/09/farewell-enableviewstatemac.aspx
OriginalL'auteur inspite
Il 'll être un problème Lorsque Vous accueil multi serveur. Parce que les Clés d'ordinateur sont différents.
SI votre projet se déroule sur une seule machine. EnableViewStateMAC=true est en toute sécurité.
À l'aide de enableViewStateMac exige que les demandes successives être transférées sur le même serveur (c'est à dire l'affinité du serveur). Cette fonction est utilisée pour aider à prévenir la manipulation de la vue de la page de l'état; toutefois, il n'est donc basé sur une auto-généré clé de validation sur le serveur actuel. À partir de cette clé, un code d'authentification de message (MAC) est généré et envoyé dans le ViewState au navigateur. Le problème est que si un message de retour est effectué et va sur un autre serveur, vous obtiendrez un joli petit message d'erreur disant “Corrompus de l'État d'Affichage“.
Pour résoudre ce problème, vous pouvez soit définir enableViewStateMac à faux dans l'élément ou de spécifier une valeur commune pour les validationKey attribut dans l'élément sur tous les serveurs (de la batterie).
Par la voie, de la documentation dit que c'est DÉSACTIVÉ par défaut. C'est incorrect! Allez vérifier sur la machine.config!
Vous 'll décide. SI vous n'avez pas activé. Tiers outils peuvent décoder. Votre viewSate. ignatu.co.royaume-uni/ViewStateDecoder.aspx
Ex. SI vous stockez de la liste des utilisateurs qui comprend les mots de passe dans l'état d'affichage. Ils peuvent décoder et voir le mot de passe.
Vous ne devriez JAMAIS jamais JAMAIS stocker une liste d'utilisateurs et leurs mots de passe dans l'état d'affichage. Vous ne devriez JAMAIS même être en mesure de voir leurs crus des mots de passe.
Le mot de passe est seul exemple. 🙂 Il ne devrait pas stocker.
OriginalL'auteur halit