32 votes

implémentation de sécurité api php

J'ai un site qui permettent aux utilisateurs de consulter leurs statistiques (nombre de fichiers téléchargés, comment de nombreux fichiers qu'ils ont, les quotas, le type d'accès, etc...)

J'ai créer une section sur mon site: api.domain.com

Cela peut être l'accès par roulage ou d'un navigateur web depuis que je suis de retour d'un objet json ou xml (en fonction de l'utilisateur préf.)

Ma question est: dois-je restreindre l'accès à l'aide d'un user/pass ou devrais-je créer un hachage du fichier de l'utilisateur?

par exemple:

scénario 1:

L'utilisateur de créer un php curl qui envoie de l'utilisateur et de passer par la poste ou le curl auth et d'en obtenir les résultats, analyser, etc...

Pour moi, c'est sûr, mais l'utilisateur doit maintenir son script si ils changent leur pass

scénario 2

L'utilisateur d'accéder à un fichier comme ceci: api.domain.com/j355HGssgf3HESAjh45jusf4325GSj5hbsHhdh5HGHFS3732he4548475wbe3447nSNe5XfgjhGJ et ensuite accéder aux données

Celui-ci, rien à maintenir

40voto

Book Of Zeus Points 38130

Voici mes réflexions sur ce.

Si vous revenez à une page introuvable ou un message d'erreur (avec un bon de 200 état OK) quand une demande est faite à votre page, il peut envoyer aux bots ou non dignes de confiance aux gens une idée sur ce qu'ils peuvent obtenir et essayer encore et encore et encore ...

D'autre part, si vous envoyez un accès refusé, comme un 401, ou mieux une erreur 500 du code de simuler une erreur du serveur, ces robots ou non dignes de confiance les gens pourraient s'en aller pour de bon.

Je vais dire à l'utilisateur/mot de passe de la méthode est un peu plus sûr de lui dans ce cas.

Maintenant, feriez-vous confiance, simplement en entrant une chaîne de caractères (scénario 2) lorsque vous vérifiez votre courrier? ou vos informations de compte bancaire?

37voto

Jason Brumwell Points 2172

Si c’était moi, je donnerais à chaque compte la possibilité de créer une clé d’API unique,

 api.domain.com/?key=<API.KEY>
 

pour plus de sécurité, vous ne pouvez accepter que la connexion via la méthode post avec la clé api. Si contacté via get, affichez une erreur, etc.

Ensuite, s’ils changent leur passe / nom d’utilisateur, cela n’affectera pas leur clé d’API

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X