2010-05-29 3 views
0

Mon site est dans asp.net 3.5 et C#. J'envoie un lien à mon utilisateur par courrier, maintenant je veux envoyer à chaque utilisateur une URL spécifique. Donc, au lieu d'envoyer le texte en clair, je veux envoyer un lien avec l'URL de la chaîne cryptée, que je décrypterai sur ma page d'accueil. Comme au lieu de www.mysite.aspx\mypage?userId=12 Je vais envoyer www.mysite.aspx\mypage?UserId=)@kasd12 et le même je vais décrypter sur ma page de sorte que je vais obtenir le userId = 12. S'il vous plaît laissez-moi savoir si mon approche est correcte et non et comment crypter & décrypter la chaîne de manière simpleChiffrer l'URL dans asp.net

+1

double possible de [cryptage simple 2 voies pour C#] (http : //stackoverflow.com/questions/165808/simple-2-way-encryption-for-c) ou [Encrypt/Decrypt string dans .NET] (http://stackoverflow.com/questions/165808/simple-2- way-encryption-for-c) –

+0

@ Jørn Merci, j'ai supprimé ma suggestion d'utiliser un GUID. Ce fil était le clincher! http://stackoverflow.com/questions/643445/how-easily-can-you-guess-a-guid-that-might-be-generated –

Répondre

1

Générer une valeur de chaîne aléatoire au lieu de cryptage/décryptage :) Et faites-lui au moins 6 ou 7 caractères. Conservez la valeur dans la base de données et une fois que la valeur est reçue par une chaîne de requête, exécutez une requête SQL pour faire ce pour la ligne correspondante :)

Page_Load() 

string x = Request.QueryString["UserID"]; 

SqlCommand x = new SqlCommand("UPDATE UserTable SET UserStatus='Activated' WHERE RandomKey='x'", connection); 
+0

Plutôt qu'une chaîne de 6 ou 7 caractères, utilisez un Guid. –

+0

@Ben - J'ai eu la même idée brillante que de découvrir que ce n'était pas si brillant! http://stackoverflow.com/questions/643445/how-easily-can-you-guess-a-guid-that-might-be-generated –

+1

Juste parce que les guids ne sont pas cryptographiquement sécurisés ne signifie pas qu'ils ne sont pas adaptés pour cette objectif. Ils ne peuvent pas être utilisés comme une clé cryptograhique comme ils le pourraient car les données pourraient être déchiffrées en générant des millions de guids probables. Cet atack n'est pas faisable dans le contexte d'une clé de chaîne de requête, car vous devriez faire des millions de requêtes http dans un court laps de temps –

2

n'est-il pas plus approprié de générer une clé d'accès temporaire?

+1

Avec> 50 points de réputation, vous devriez être en mesure de poster ce genre de suivi -up des questions comme des commentaires à la question plutôt que comme une réponse vide :) –

+1

@ Jørn Je dirais que c'est une réponse valable. Le PO demande "S'il vous plaît laissez-moi savoir si mon approche est correcte" –

+2

c'est une réponse sur "S'il vous plaît laissez-moi savoir si mon approche est correcte". Seulement je ne dis pas qu'il devrait utiliser l'approche plus commune de générer des codes d'accès uniques "difficiles à deviner", j'essaie de lui laisser penser à ce que c'est ce qu'il veut vraiment ... la sécurité à travers l'obscurité est toujours une mauvaise chose btw :) –

1

Je suis assez sûr que cette page code project est ce que votre après. C'est fondamentalement un HttpModule qui peut être utilisé pour crypter des Querystring.

Questions connexes