Je crée une application mvc simple dans ASP .NET et je voudrais conserver toutes les données utilisateur d'une session côté client, c'est-à-dire qu'à chaque fois que la page est chargée, les variables redémarrent à partir de zéro (par exemple, des points dans un jeu). Ces données seraient ensuite envoyées côté serveur (en tant que publication) pour être traitées, puis retournées au client. Je fais cela pour ne pas utiliser de base de données et gagner en performances.

Cependant, comment puis-je m'assurer que ces données ne peuvent pas être manipulées avant d'être envoyées au serveur? Excusez-moi, je suis un peu nouveau pour tout cela.

Merci

0
Michael Eilers Smith 1 oct. 2011 à 06:21

4 réponses

Meilleure réponse

Vous pouvez intégrer un HMAC dans les données envoyées au client afin que le serveur puisse vérifier qu'il n'a pas changé lorsque le client le renvoie plus tard. Mais vous devez également vous préoccuper de choses comme les attaques de relecture - même si un client malveillant ne peut pas < em> modifier les données, il peut envoyer des anciennes données qu'il a reçues il y a plusieurs rechargements.

Vous dites que vous essayez d'obtenir un avantage en termes de performances en n'utilisant pas de base de données, mais avez-vous réellement évalué les performances de la base de données et les avez trouvées trop lentes? Cela semble que vous puissiez choisir une conception étrange pour votre application sur la base d'une hypothèse non fondée.

2
Wyzard 1 oct. 2011 à 16:05

Tout ce qui vient du client peut être manipulé, y compris les variables javascript, les variables FORM, etc.

Traitez toujours tout ce qui provient du navigateur comme non fiable. Vérifiez toujours si l'appelant a accès à la ressource demandée, pour chaque requête HTTP. Il s'agit de la règle cardinale pour toutes les applications Web. C'est généralement fait dans le filtre donc ce n'est pas si mal.

3
RHT 1 oct. 2011 à 03:38

Il existe isn't un moyen de protéger ou de conserver les valeurs des variables JavaScript lorsque la page est publiée.

1
adatapost 1 oct. 2011 à 02:38

Vous ne pouvez pas, le mieux que vous puissiez faire est de les valider côté serveur et de vous assurer qu'ils ne contiennent aucun caractère malveillant, vous pouvez également utiliser un hachage pour vérifier que la variable n'a pas été modifiée manuellement, bien qu'ils puissent toujours changes le.

1
ryudice 1 oct. 2011 à 02:23