2012-03-15 2 views
0

j'ai un back-end rails RESTful où les requêtes http (GET, PUT, POST, etc.) ont beaucoup à voir avec les actions du contrôleur (index, nouveau, créer, etc.)Rails Routes et mobile Android HttpGet et HttpPost

Je construis une application android, et j'ai construit un contrôleur api_key qui assigne tous les utilisateurs avec une api_key où à partir de l'application mobile, chaque demande envoie cette api_key pour vérification.

Chaque requête d'android to rails a params [: api_key] pour vérification et cela fonctionne. Jusqu'à présent, j'ai utilisé à la fois HttpPost et HttpGet, mais je sais que GET n'est pas sécurisé car il envoie les paramètres dans l'en-tête. Je ne veux pas que quelqu'un renifle l'api_key dans l'en-tête quand j'envoie des requêtes HttpGet.

Ensuite, est-il possible d'utiliser simplement HttpPost même dans les actions du contrôleur qui nécessitent généralement des requêtes GET?

Merci

Répondre

0

En utilisant la méthode HTTP POST ne rend pas les données plus sûr, si quelqu'un l'intercepte alors ils peuvent récupérer la clé API si elle est attachée à l'URL ou sous une forme.

Si vous êtes préoccupé par la sécurité, vous pouvez envisager d'utiliser HTTPS ou un système d'authentification sécurisé. Avec les rails, la méthode détermine uniquement l'endroit où les rails achemineront la requête. Tant que la requête finit dans la bonne action, dans le bon contrôleur, les rails fourniront la clé dans le hash des paramètres exactement la même, qu'elle soit attachée à l'URL en tant que paramètre ou sous une forme.

+0

Merci, Tom! Vous avez répondu à deux de mes questions. Donc, vous dites en termes de sécurité, POST n'est pas plus sûr que GET? – railslearner

+0

Pas de problème. Non, POST n'est plus sécurisé. Si les données sont interceptées, la clé api sera toujours là en texte clair. HTTPS est probablement le moyen le plus simple de résoudre ce problème, il suffit de faire toutes les requêtes du client android via HTTPS avec la clé soit en tant que paramètre d'URL, soit sous forme et ceci est parfaitement sécurisé. –