2011-09-25 1 views

Répondre

1

Vous devez savoir les choses principales:

  • Les utilisateurs sont stupides comme des singes. Ils cliquent n'importe quoi n'importe quand.
  • HTTPS
  • bonnes compétences de programmation
  • HASH + sel
  • bugs PHP
  • Toutes les façons possibles de piratage sur le site web PHP et MySQL. Combattre le feu avec le feu.
0

Les principaux problèmes sont les suivants:

injection SQL XSS lors de la sortie des données

Voici quelques liens:

How does the SQL injection from the "Bobby Tables" XKCD comic work?
How to prevent SQL injection with dynamic tablenames?
htmlentities() vs. htmlspecialchars()
Salting my hashes with PHP and MySQL
How should I ethically approach user password storage for later plaintext retrieval?

les lire, je l'espère vous suivre les conseils dans les nombreuses réponses.

+0

Belle liste de liens. J'ai lu une bonne réponse sur SO il y a quelques jours concernant la bonne façon de hachage des mots de passe, mais je n'arrive pas à le trouver maintenant. Je suppose que j'aurais dû le préférer. – Herbert

1

C'est une question très vaste, et il y a des dizaines de livres uniquement écrits pour répondre à cette question, mais voici quelques choses importantes:

1- données d'entrée utilisateur jamais confiance (_GET et $ _POST) . Toujours assainir tout avant d'imprimer/enregistrer dans la base de données.

2- Évitez de concaténer les paramètres directement sur le SQL. Utilisez toujours $ db-> bindParam() ou une autre fonction similaire.

3- Ne stockez jamais les mots de passe en texte brut. Utilisez toujours un algorithme de hachage. Et pour être sûr, utilisez aussi un sel.

4- Toujours s'attendre à ce que le pire scénario se produise. Parce que ça va.

5- Lisez quelque chose à propos de XSS, CSRF. Et assurez-vous de protéger votre application contre ceux-ci.

6- Get expérimentés =)

+0

Je l'ai fait énorme pour une raison ... J'espérais que cela pourrait donner à noobs comme moi une ressource générale sur où commencer à lancer des coups de poing: D – Ceya

0

Beaucoup de réponses est venu pendant que je tapais cela. Je suppose qu'ils tapent plus vite. :-p

Tous sont de bonnes réponses et je ne sais pas comment vous choisirez le meilleur, mais la plupart sont à peu près les mêmes.

  1. NE JAMAIS CONSERVER LES MOTS DE PASSE EN TEXTE PLAIN. Utilisez les algorithmes SHA-2 avec un sel . Rangez le hachis et le sel.

  2. Ne faites jamais confiance à l'utilisateur. Désinfectez tout ce qui se trouve dans la base de données avant de la stocker ET à chaque fois que vous l'utilisez.

  3. Utilisez des instructions préparées. Regardez dans PDO.

  4. Utilisez HTTPS lorsque cela est possible.

Voici quelques éléments à ne pas perdre de vue. Le plus important de tous Étudiez-vous @ss off. :-)

Questions connexes