Chiffrer/Encodage d'un ID dans l'URL de la chaîne
Juste essayer de faire un peu de sécurité sur mon site web et d'essayer de trouver le meilleur itinéraire pour obtenir un ID.
EXEMPLE:
http://localhost/page.php?id=90
POUR:
http://localhost/share/22349234987sdsdf9sdf87423498asf9
Je suis en utilisant HTACCESS pour faire la part de la partie. Mais souhaitez masquer le '90' et essayer de dissuader quiconque d'ajouter simplement des nombres aléatoires pour l'essayer et de recevoir une réponse différente.
Des idées sur la façon de créer quelque chose comme ça, ou si il existe déjà quelque chose qui fonctionne bien avec la mise en œuvre?
La sécurité est un facteur, si juste essayer de trouver la meilleure solution qui existe...
et alors? Vous pouvez modifier
id
ici, DONC. Pas de problèmes avec elle?OriginalL'auteur Justin | 2011-02-09
Vous devez vous connecter pour publier un commentaire.
Cacher l'ID est l'obscurité, pas de sécurité.
Si vous le voulez bien, l'obscurité, regardez la mcrypt fonctions en PHP. Assurez-vous d'ajouter un sel avant d'encodage et de décodage, sinon, il sera facile de deviner le chiffrement/déchiffrement.
Et être conscient que n'importe qui d'autre peut toujours tomber sur votre Url, vaincre entièrement. Je voudrais utiliser une certaine forme de HTTP Auth via HTTPS si vous voulez la sécurité, aussi.
OriginalL'auteur Mark Rose
Un de mes amis a mis en œuvre une méthode de signature de toutes les requêtes GET avec l'actuel jeton de session et un secret pour éviter les attaques de type CSRF.
Mais ce que vous essayez de faire est de disposer d'une URL que vous pouvez partager avec d'autres personnes.
Vous pouvez créer un hachage MD5 qui ressemble à l'url d'origine, et d'enregistrer à la fois dans la base de données.
Maintenant quand /share/someLongId est ouvert, vous pouvez vérifier dans la base de données où l'URL que hachage appartient et que l'on peut rediriger l'utilisateur vers l'URL.
Une autre possibilité est d'utiliser Guid au lieu de l'auto-incrémentation d'Id dans la première place. De cette façon, tous les Id sont juste plus long et pas facile à deviner.
OriginalL'auteur Sebastian Hoitz
En fonction de si vous en avez besoin (l'URL) d'être persistant ou pas, le froid ne soit:
non persistant: faire quelque chose comme ceci:
et puis:
}
Cela permettra de faire des liens utilisable uniquement à l'utilisateur dans la session en cours. Si vous en avez besoin persistant, vous pouvez générer des Identifiants et de les stocker dans la base de données avec le real Id, mais cela peut être inutile, comme l'ID aléatoire peut être utilisé à la place de nom réel pour faire les mêmes choses...
OriginalL'auteur StasM