- - Conseils de programmation PHP, astuces et sécurité

Conseils de programmation PHP, astuces et sécurité

PHP est en fait l'un des plus programméslangue pour la création d'applications Web. Ce qui le rend si populaire, c'est son intégration facile avec la base de données Mysql. Parfois, un langage convivial peut trop aider le programmeur et des failles de sécurité peuvent s'introduire, provoquant une grave défaillance de la sécurité.

Voici quelques conseils qui peuvent également garantir la sécurité de votre application au niveau débutant pour vous aider à éviter certains pièges de sécurité courants.

1) Rapport d'erreur: Le signalement des erreurs a été l'un des plus grands alliéspour un programmeur. Essayez de signaler les erreurs. Vous ne voulez pas que votre site affiche des messages d'erreur directement de la base de données aux utilisateurs. Cela révélera assez facilement les pièges de sécurité. Pour signaler une erreur, incluez simplement l'instruction
=> rapport_erreur (0);

2) Arrêtez les scripts actifs pour reprendre les données: Une application Web prend un certain nombre d'entrées utilisateuret les affiche sous plusieurs autres formes. Tout en acceptant des entrées, le html pourrait s'avérer dangereux car il exécute des scripts Java de manière non intentionnelle. Cela détournerait facilement les cookies.

3) Valider: Lorsqu'une application prend des entrées, sales valider côté utilisateur que côté serveur. Par exemple, une gestion de bibliothèque prend des entrées Student ID pour créer une nouvelle base de données d'utilisateurs. Vous connaissez donc presque les entrées attendues dans ce domaine. Les valider dès leur saisie serait une meilleure option.
Une simple validation serait juste
si (! preg_match (“/ ^ [0-9] {8} $ /”, $ _GET [‘id’])))

{

// rapport d'erreurs
Veuillez saisir l'ID d'étudiant à 8 chiffres

}

4) PROTECTION D'IDENTIFICATION DE SESSION

Le détournement d'ID de session peut être un problème avec PHPSites Internet. Le composant de suivi de session PHP utilise un ID unique pour la session de chaque utilisateur, mais si cet ID est connu d'un autre utilisateur, cette personne peut détourner la session de l'utilisateur et voir des informations qui doivent être confidentielles. Le détournement d'ID de session ne peut pas être complètement empêché; vous devez connaître les risques afin de pouvoir les atténuer.

5) Sessions appropriées Par exemple, même après qu'un utilisateur a étévalidé et attribué un ID de session, vous devez revalider cet utilisateur lorsqu'il effectue des actions très sensibles, telles que la réinitialisation des mots de passe. Ne permettez jamais à un utilisateur validé par la session d'entrer un nouveau mot de passe sans également entrer son ancien mot de passe, par exemple. Vous devez également éviter d'afficher des données vraiment sensibles, telles que les numéros de carte de crédit, à un utilisateur qui n'a été validé que par l'ID de session.

6) Empêcher une injection SQL
Une attaque par injection SQL est une forme d'attaque quiprovient d'une entrée utilisateur qui n'a pas été vérifiée pour vérifier qu'elle est valide. L'objectif est de tromper le système de base de données en exécutant un code malveillant qui révélera des informations sensibles ou compromettra le serveur d'une autre manière.

ici l'exemple

$ sql = "sélectionnez le nom d'utilisateur et le mot de passe des utilisateurs où username =‘ .addslashes ($ _ POST [‘username’]). ’et password =‘. md5 (‘$ _ POST [‘ pwd ’]’). '”;
$ query = mysql_query ($ sql) ou die (mysql_error ());

Même si vous utilisez déjà la fonction addslashes (), la requête sera plus vulnérable à l'injection sql. Voici quelques façons d'éviter cette menace

1. Utilisez votre requête pour sprintf () avant de l'exécuter en utilisant la fonction mysql_query ().

2. passez toutes les données POST / GET en utilisant la fonction mysql_real_escape_string () avant de les passer à votre requête.

Voici l'exemple

$ username = mysql_real_escape_string ($ _ POST [‘username’]);
$ password = md5 ($ _ POST [‘password’]);
$ sql = sprintf («sélectionnez le nom d'utilisateur, le mot de passe des utilisateurs où nom d'utilisateur =«% s »et mot de passe =«% s »», $ nom d'utilisateur, $ mot de passe);
$ query = mysql_query ($ sql) ou die (mysql_error ());

Si vous avez besoin d'aide, faites-le moi savoir dans la section commentaires. :)

commentaires