2010-11-07 43 views
1

Je viens de trouver du code qui semble crypter les clés de la base de données avant de les envoyer au client (WebBrowser, Silverlight, etc.). Par exemple, supposons que vous ayez une liste d'étudiants pour des activités extrascolaires et une relation définie entre eux. Chaque fois que les données sont écrites sur la page ASPX, l'ID d'étudiant et l'ID d'activité sont chiffrés. Chaque fois qu'une écriture ou une modification est effectuée, cette valeur est renvoyée au serveur, décryptée et enregistrée dans la base de données.Cryptage des clés étrangères de la base de données avant l'envoi au navigateur

Quelles pourraient être les raisons pour exposer les données de cette façon? Est-ce une pratique normale?

Si ce cryptage sélectif est une bonne pratique, quelles sont les meilleures façons de l'aborder?

Répondre

0

Je pense que c'est une bonne pratique pour réduire les gens qui veulent juste fouiller sur votre site pour des failles de sécurité. Je veux dire que si les identifiants de vos étudiants sont des numéros séquentiels et que les personnes peuvent voir l'identifiant de leur page dans la chaîne de requête, il est assez facile d'augmenter le nombre pour voir si vous pouvez accéder au prochain élément de la liste itérer à travers tous les chiffres.

Idéalement, vous voudriez que certaines mesures de sécurité empêchent les utilisateurs d'accéder à ces pages de toute façon si vous ne voulez pas qu'ils y aient accès. Mais même si l'information était publique, elle pourrait empêcher les gens d'écrire un script pour parcourir toutes les informations. Nous le faisons réellement dans notre produit parce que même si nous avons la sécurité pour les éléments de données, il appartient aux administrateurs du site de s'assurer que la sécurité est appliquée correctement afin que nous chiffrions et décryptions les clés qui sont exposées dans l'URL. pour le rendre un peu plus sûr au cas où les administrateurs ne savent pas ce qu'ils font et laisser les choses ouvertes qui devraient être verrouillées.

J'aime cette méthode d'extension pour Crypter/Décrypter facile: http://www.extensionmethod.net/Details.aspx?ID=69

Vous devez vous assurer d'url encode les valeurs cryptées car ils ne sont pas toujours url amicale quand ils sont générés. Vous pouvez également vous attendre à avoir des urls moche comme une clé de 5 caractères crypteront à environ 14 caractères de choses aléatoires.