2010-05-22 7 views
3

Je me demandais comment développer un poste sécurisé via AJAX.Sécurisé ajax formulaire POST

Par exemple, j'ai:

Mon formulaire HTML.

Mon JavaScript gère le soumettre.

L'URL est soumettre "post_data.php"

Les données affichées est:

id = 8 & name = Denis

Le PHP vérifie si les variables identifiant et le nom sont misés et ses données type. Si cela ne pose aucun problème, procédez à des opérations sur une base de données.

Ma question est, comment puis-je empêcher quelqu'un de créer son propre formulaire html, en dehors de mon site web, ou autre, et d'afficher de fausses données dans mon script PHP? Imaginez que les données existent vraiment sur ma base de données, cela pourrait être mauvais.

Merci

Répondre

7

Une façon très courante de le faire est d'avoir un signe de quelque sorte inclus dans un champ <hidden> sur votre formulaire, et le même enregistré dans une variable de session (ou ailleurs) sur votre serveur . Lorsque le message est envoyé, vous vérifiez que le jeton est valide. Quelqu'un d'autre pourrait encore forger un jeton, mais ils ne peuvent pas (du moins facilement) vous forcer à enregistrer le même jeton sur votre serveur, donc aucun autre formulaire que le vôtre ne sera accepté.

C'est par exemple le fonctionnement de la prise en charge intégrée dans ASP.NET MVC.

1

La méthode du jeton est probablement la plus efficace. Cela dit, vous ne devriez jamais supposer que les données proviennent de votre propre formulaire, même une fois que vous avez ces autres mesures de sécurité en place. La validation des données sera toujours importante.