2010-08-10 5 views
1

Lors de la définition de l'attribut ValidateAntiForgeryToken. Quel niveau de complexité doit-on donner au sel?Formulaire MVC.net post/anti forgery

Par exemple, un caractère alphanumérique sur X est-il bon? Devrait-il y avoir des symboles aussi?

[ValidateAntiForgeryToken(Salt = "How complex is good")] 
public virtual ActionResult SaveDetail(UserDetails details) 
{ 
. 
. 
. 
} 

Répondre

3

Je pense que c'est une question de longueur de sel plutôt que de types de caractères. Autrement dit, plus le sel est long, plus AntiForgeryToken sera difficile à casser. Les méthodes modernes telles que md5-crypt et bcrypt utilisent des sels de 48 et 128 bits, respectivement. Peut-être que vous voulez suivre leur exemple.

Si vous êtes vraiment concerné, ajoutez un sel différent à chaque vue. Cela apportera une sécurité supplémentaire à votre site, car les pirates ne pourront pas réutiliser un jeton compromis de la vue pour l'afficher. J'espère que cela a du sens.

Sanderson en parler à this post.

2

J'ai ajouté mon « sel » dans un fichier de configuration et d'utiliser un guid pour sa valeur (le long des lignes de):

public const string AntiforgeryToken = "{F161FDA9-D1F0-43D2-85D0-F7051F12E7B8}"; 

i font référence dans les contrôleurs comme ceci:

[AcceptVerbs(HttpVerbs.Post), ValidateAntiForgeryToken(Salt = Config.AntiforgeryToken)] 

semble fonctionner très bien pour moi.

jim

Questions connexes