2010-08-09 7 views
0

Possible en double:
PHP Session SecurityPrincipes de base pour la sécurisation d'une application web?

Je viens de finir coder les bases d'une application web (le code principal) et je l'ai intégré un système utilisateur de base. Ceci est ma première application web donc je me demande quelles sont les choses que je devrais utiliser pour le sécuriser? Je sais déjà quelque chose comme mysql_real_escape_string() et strip_tags() mais quoi d'autre? Comment stocker des noms d'utilisateur et des mots de passe de manière sécurisée via des cookies et des sessions? Tous les conseils, tutoriels, etc. sont grandement appréciés!

+0

Il y a beaucoup de ressources en ligne à ce sujet. Voici un sujet relatif: http://stackoverflow.com/questions/328/php-session-security. Et un autre: http://stackoverflow.com/questions/2119083/php-tutorial-that-is-security-accuracy-and-maintainability-conscious –

+3

http://stackoverflow.com/questions/72394/what-should-a -developer-know-before-building-a-public-web-site est une question légendaire couvrant le même sujet. – ggg

+0

@ggg merci pour cela! – williamg

Répondre

2

OWASP a quelques guides très utiles sur les vulnérabilités les plus courantes et de bonnes recommandations sur la façon de les atténuer. Vous devriez vous familiariser avec le attacks et le vulnerabilities qu'ils couvrent.

La lecture de ces éléments peut prendre du temps, mais il n'y a pas trop et la lecture n'est pas particulièrement dense. Peut-être que vous devriez vous concentrer sur leur top 10 security risks d'abord.

+0

Une chose que je suis confus est que j'ai lu dans de nombreux endroits (y compris le lien ggg fourni) de ne pas stocker le nom d'utilisateur et les mots de passe dans les cookies. Comment alors, les stockez-vous pour que l'utilisateur n'ait pas besoin de se connecter à chaque fois. Ou devrais-je simplement ne pas les stocker en texte brut dans les cookies (md5 les encoder?) – williamg

+0

Utilisez plutôt un identifiant de session. L'ID de session se trouve dans le cookie et, sur votre serveur, vous associez le nom d'utilisateur et les autres variables de session à l'ID. Sachez qu'il existe également des risques de sécurité avec les identifiants de session. Veillez donc également à en prendre connaissance (par exemple, la fixation de session). –

+0

Mais la connexion entre la session et les données ne serait-elle pas perdue une fois que l'utilisateur ferme son navigateur? – williamg

1

CWE/SANS Top 25 Most Dangerous Software Errors m'a beaucoup aidé.

real_escape_string seulement combat MySql injection. En outre, lorsqu'un utilisateur doit entrer un nombre, par exemple, en lisant newsid=n à partir d'une URL comme index.php?newsid=3, assurez-vous que $_GET['newsid'] est un nombre entier en ajoutant (int) avant $_GET['newsid'].

quelques choses vraiment basiques;) espérons que le lien aide.

Questions connexes