Les éléments marqués d'un (*) indiquent que l'élément constitue une solution fondamentale au problème concerné et que vous devez faire de votre mieux pour compléter ce contenu. Les éléments non marqués d'un (*) indiquent que l'élément ne peut pas éliminer complètement les risques pour la sécurité, mais seulement que les problèmes de sécurité peuvent être évités grâce à cette méthode.
Injection SQL
(*) Utilisez la fonction de liaison de variable SQL lors de la combinaison d'instructions SQL
(*) Si la base de données ne fournit pas de liaison de variables, vous devez échapper à toutes les variables qui composent le SQL et ne pas afficher le message d'erreur intact dans le navigateur.
Définissez les autorisations appropriées pour les utilisateurs accédant à la base de données.
Injection de ligne de commande du système d'exploitation
(*) Évitez d'utiliser des langages capables de démarrer des commandes shell. Si vous êtes autorisé à démarrer des commandes shell, vous devez vérifier toutes les variables dans les paramètres de la fonction pour vous assurer que seules les opérations légales sont incluses et ne pas vérifier les paramètres de chemin d'accès/. parcours de répertoire.
(*) N'utilisez pas les paramètres transmis de l'extérieur directement comme noms de fichiers.
(*) Limitez les opérations d'ouverture de fichiers aux répertoires fixes et interdisez aux noms de fichiers de contenir des chemins. Définissez les autorisations d'accès correctes pour les fichiers sur le serveur Web.
(*) Utilisez un contenu difficile à deviner comme identifiant de session
(*) Ne pas enregistrer l'ID de session dans l'URL
(*) Définir l'attribut sécurisé pour les cookies utilisés dans le protocole https
(*) Générer une nouvelle session après une connexion réussie
(*) Après une connexion réussie, générez une information secrète en plus de l'ID de session et vérifiez-la à chaque fois que vous visitez la page. N'utilisez pas de valeur fixe comme ID de session.
Lors de l'enregistrement de l'ID de session dans le cookie, définissez la date d'expiration. Attaque de script intersite (XSS)
La solution lors de la saisie de contenu HTML n'est pas autorisée
(*) Tout ce qui est affiché sur la page doit être échappé
(*) Seules les URL commençant par "http://" ou "https://" sont autorisées lors de la sortie des URL
(*) Ne pas générer dynamiquement de contenu <script>…</script>
(*) Ne lisez pas la feuille de style d'un site Web externe. Solution pour vérifier le contenu saisi lorsque la saisie du contenu HTML est autorisée.
(*) Analysez le contenu HTML d'entrée, générez une arborescence d'analyse, puis extrayez les parties non scriptes. Utilisez des scripts pour supprimer les chaînes pertinentes dans le contenu HTML d'entrée.
(*) Re-spécifiez l'attribut charset de Content-Type dans l'en-tête HTTP de la réponse. Pour éviter la fuite d'informations sur les cookies, la méthode Trace doit être désactivée et l'attribut HttpOnly doit être défini pour tous les cookies. (CSRF)
(*) Toutes les pages sont accessibles via POST. Une information est générée aléatoirement dans la partie cachée de la page précédente. La page après la soumission vérifie l'information et ne l'exécute que si elle est correcte.
(*) Exiger à nouveau le mot de passe avant d'exécuter une activité
(*) Confirmez si le référent est correct Uniquement lorsqu'il est correct, effectuez les opérations importantes et envoyez un e-mail à l'adresse e-mail prédéfinie.
Injection d'en-tête HTTP
(*) Ne produisez pas directement les en-têtes HTTP, mais utilisez l'API de sortie des informations d'en-tête fournie par l'environnement en cours d'exécution.
(*) Lorsque l'API ne peut pas être utilisée, les sauts de ligne dans les informations d'en-tête d'entrée doivent être interdits. Les sauts de ligne dans toutes les entrées externes doivent être supprimés (en utilisant certains moyens pour envoyer des e-mails à l'adresse spécifiée par l'attaquant).
(*) N'utilisez pas de paramètres externes comme informations d'en-tête d'e-mail. Lorsque vous devez utiliser des paramètres externes pour définir les informations d'en-tête, supprimez les caractères dangereux.
Déclaration de droits d'auteur : Vous pouvez réimprimer à volonté, mais l'auteur original Charlee doit être cité lors de la réimpression.
Lien d'origine : http://tech.idv2.com/2008/04/19/secure-website-checklist/
Référence de stratégie d'application spécifique : liste de contrôle de sécurité des pratiques PHP