2016-03-16 4 views
2

Je travaille sur un environnement LAMP, en utilisant PHP. Mes scripts lisent les données client en utilisant $ _REQUEST au lieu de $ _GET ou $ _POST. Je pense qu'une fois que j'aurai atteint la production, je changerai simplement mes paramètres par défaut de jQuery de GET à POST.Un avantage de production à GET sur POST?

Quelqu'un peut-il voir des inconvénients avec cette approche?

Plus d'infos? Ma configuration jQuery Ajax définit GET par défaut - la sortie des urls affichées dans le fichier console.log m'aide à examiner les arguments passés avec succès et sans valeurs.

Dans un environnement de production, les données d'URL seront révélées dans des fichiers journaux susceptibles de créer des faiblesses. Bien que n'étant pas critique pour l'instant, je prends la vision à long terme. Je suppose également que cela conduirait à des fichiers journaux plus volumineux (ce qui n'est pas en soi un problème, mais reste un facteur à considérer).

GET est limité en longueur bien que peu de navigateurs respectent les limites généreuses que je ne suis pas susceptible d'atteindre jamais.

POST a des avantages en ayant moins de limites. Il permet également le téléchargement de fichiers. Comme mon premier paragraphe a dit ... J'essaie juste de peser le bon et le mauvais sur le passage de GET à POST.

Tous les commentaires sont les bienvenus ...

+1

Sauf si vous envisagez d'autoriser le navigateur à mettre en cache vos requêtes AJAX, vous pouvez généralement passer de GET à POST sans problème. – Miro

Répondre

6

Il ne devrait pas « peser des prestations ». Ils sont utilisés pour différentes choses. GET devrait être utilisé chaque fois qu'il n'y a pas d'effet de la requête sur l'état du serveur (à part les plus triviaux, comme la consignation d'accès). POST devrait être utilisé quand il y a (en ignorant maintenant les méthodes REST comme PUT ou DELETE). Par exemple, si vous souhaitez demander au serveur de vous montrer la page suivante, de lister les éléments disponibles, pour vous montrer une image ... vous devez utiliser GET. Si vous voulez demander au serveur de changer la base de données, rappelez-vous votre choix, envoyez un email, téléchargez un fichier, supprimez un fichier, arrêtez le serveur ... vous utilisez POST.

Ce n'est pas seulement une question de principe; c'est un contrat sur lequel s'appuient d'autres acteurs du Web, tels que crawlbots. Si vous n'avez pas d'authentification et que vos actions de suppression sont des liens GET, une visite de Googlebot peut effacer votre base de données.

+0

Merci ... Ma recherche initiale ici n'a pas réussi à trouver un article lié, mais après avoir posté, cette vieille question a fait des points similaires à la vôtre http://stackoverflow.com/questions/198462/is-either-get-or-post- plus-sûr-que-l'autre –

+0

Et quelqu'un a référencé une entrée de blog 2008 qui soutient vos points plus loin ... http://blog.codinghorror.com/cross-site-request-forgeries-and-you/ Je pensais juste Je partagerais au cas où quelqu'un ferait référence à ma question à l'avenir. –