Alors que des recherches sur la question de JSON vs XML, je suis tombé sur cette question. Maintenant, l'une des raisons de préférer JSON a été répertorié comme la facilité de la conversion en Javascript, c'est à dire avec l' eval()
. Maintenant, cela m'a immédiatement frappé comme potentiellement problématique dans une perspective de sécurité.
J'ai donc commencé à faire quelques recherches sur les aspects de sécurité de JSON et à travers ce blog à propos de la façon dont JSON n'est pas aussi sûr que les gens pensent qu'il est. Cette partie a frappé:
Mise à jour: Si vous faites JSON 100% correctement, alors vous aurez seulement les objets au plus haut niveau. Des tableaux, Chaînes de caractères, Nombres, etc seront tous enveloppé. Un objet JSON va échouer à eval() parce que le JavaScript interprète pense que c'est en regardant un bloc plutôt que d'un objet. Cette va un long chemin pour la protection contre les ces attaques, cependant, c'est encore meilleur pour protéger vos données avec onu-prévisible Url.
Ok, donc c'est une bonne règle pour commencer: objets JSON au plus haut niveau doit toujours être objets et de ne jamais les tableaux, les nombres ou de chaînes de caractères. Sonne comme une bonne règle pour moi.
Est-il rien d'autre à faire ou à éviter quand il s'agit de JSON et AJAX liées à la sécurité?
La dernière partie de la citation ci-dessus mentionne imprévisible Url. Quelqu'un aurait-il plus d'informations sur ce point, notamment, sur la façon de le faire en PHP? Je suis beaucoup plus d'expérience en Java qu'en PHP et en Java, il est facile (que vous pouvez mapper un ensemble d'Url à une seule servlet), tandis que tout le PHP, j'ai fait avez mappé à une URL unique pour le script PHP.
Aussi, comment utilisez-vous imprévisible Url d'augmenter la sécurité?