Maison > Questions et réponses > le corps du texte
**感谢mcfog和yc8332的回答
按照mcfog的回答
如果sign的算法公开的话, sign不就没有校验功能了吗, 恶意攻击的人也可以根据该算法生成sign了**
刚读了一篇相关的博文, 有一点不明, 请大家解惑,谢谢
文中讲到sign是根据用户"请求的所有参数,包括timestamp还有token", 然后通过加密算法生成的sign.
然后他说在验证sign的时候是通过相同的加密规则生成一个sign, 看是否与请求的sign相同.
我的疑惑来了:
用户是怎么知道合法的sign是什么, 是在用户登录成功后, 和token一起返回给客户端的吗?
如果是的话这个token和sign在客户端和服务器端一般是怎么保存的, 是都存放在cookie中和session中?
每次请求的参数和时间戳一定是不同的, 怎么会能"根据用户请求的url参数, 重现出原来加密出的sign", 加密的原始素材只有token没变, 而其他的都变了, 怎么一样呢.
博文的原文如下:
"将所有用户请求的参数按照字母排序(包括timestamp,token),然后根据MD5加密(可以加点盐),全部大写,生成sign签名,这就是所说的url签名算法。然后登陆后每次调用用户信息时,带上sign,timestamp,token参数。"
"根据用户请求的url参数,服务器端按照同样的规则生成sign签名,对比签名看是否相等,相等则放行。(自然url签名也无法100%保证其安全,也可以通过公钥AES对数据和url加密,但这样如果无法确保公钥丢失,所以签名只是很大程度上保证安全)"
黄舟2017-04-18 09:32:03
le signe n'est pas enregistré, est dynamique et est crypté en fonction des paramètres soumis. Il est principalement utilisé pour empêcher les attaques de l'homme du milieu ou l'intégrité des données
.阿神2017-04-18 09:32:03
1. L'algorithme de signe est publié par le serveur. Les paramètres qu'il contient sont connus du client. Il calcule lui-même le signe à chaque fois qu'il fait une demande.
2. signez à chaque fois qu'il est calculé. Vous lui donnez le jeton Contexte insuffisant, aucune explication de ce que c'est. Il peut s'agir des deux choses suivantes
Communément appelé « secret », une chaîne privée émise par le serveur au client. Le client doit protéger cette chaîne contre les fuites et utiliser cette chaîne pour participer aux signatures à chaque fois afin de vérifier l'identité légale du client. Le client est généralement placé dans la configuration et le serveur dispose généralement d'une base de données pour conserver les valeurs secrètes des différents clients
Communément appelé « jeton d'accès », une chaîne similaire à l'identifiant de session obtenu par le client via la demande d'interface de connexion, représentant l'état de connexion
Afin d'empêcher les attaquants de falsifier/falsifier les demandes, les éléments du signe contiennent généralement au moins un élément difficile à obtenir pour les attaquants. Le plus courant est le secret convenu par les deux parties
.Afin d'éviter les attaques par relecture, il est préférable d'inclure des numéros de séquence de requête uniques/heure en milliseconde et d'autres types d'éléments dans les paquets de données, et d'effectuer un traitement de déduplication côté serveur
3, Ceci décrit la méthode de traitement après que le serveur a reçu la demande. Il utilise l'algorithme de signe pour calculer la valeur du signe via divers paramètres dans la demande reçue et la compare avec la valeur du signe soumise par le client. client calculé correctement.
Suggestion : j'ai trop lu dans le livre titre et j'en ai fait trop peu. Connectez-vous à plusieurs interfaces API actuelles, en particulier OAuth. Vous comprendrez essentiellement ces choses
.PHP中文网2017-04-18 09:32:03
Publier signifie le divulguer à votre propre peuple. Si vous voulez vous inquiéter à ce sujet, il n'y a rien de sûr au monde. Il ne peut pas non plus être traité