1. La vérification des données originales saisies par le client ne repose pas sur Script. Bien que la vérification des données d'entrée côté client, comme JavaScript, soit plus pratique, elle ne peut pas être utilisée pour des raisons de sécurité. Les scripts ne sont pas sécurisés et les utilisateurs peuvent bloquer les scripts. Nous pouvons envoyer les données utilisateur au serveur et vérifier la légalité de la chaîne sur le serveur.
2. Dans l'identifiant d'entrée HTML, supprimez tous les crochets d'entrée '<' ' >',
3. ' ' et ' '"' ' ' ' → 'is<' '>' 'is μ"' ' &39;' est remplacé tous les deux). (2) (3) Causée par le cross-site scripting (css), la solution est d'éviter l'apparition de symboles de script.
Texte d'autorisation de l'URL
Alphanumérique「;」「/」「?」「:」「@」「&」「=」「+」「$」「,」 "-" " _" "." "!" "~" "*" "'" "(" ")" "%"
4. Toutes les pages Web qui doivent être protégées doivent avoir une autorité de certification utilisateur.
Après vous être connecté, enregistrez l'ID utilisateur dans la SESSION et ajoutez un script à chaque page qui doit être protégée pour vérification. Si la session est vide, la vérification échoue et vous devez vous reconnecter.
<% If Len(Session("ID")) = 0 Then Response.Redirect "index.html" End If %>
Les informations suivantes font l'objet d'un traitement spécial :
*Mot de passe
*Données personnelles telles que le contenu des e-mails du courrier Web
*Nom et âge , informations personnelles de résidence
*Structure des données à l'intérieur du système d'application Web
*Diverses informations système telles que les horodatages maximum à l'intérieur du serveur Web
→[1 -3. ]
5. L'ID de session qui peut être déduit à l'avance ne peut pas être défini, →[1-3.]
6. Les paramètres de données importants ne doivent pas apparaître dans l'URL lors de l'envoi <🎜. >
Utilisez post pour transmettre les paramètres. Et contre-mesures : * Communication cryptée basée sur SSL * Stratégie d'interférence. * Contre-mesures de détournement pendant la conversation7. Les données du champ caché ne peuvent pas être modifiées et transférées (la valeur du champ caché ne peut pas être affichée, mais elle sera transférée et la valeur peut être visualisé dans le fichier source html pour l'empêcher de La valeur est modifiée et transmise) Ne pas utiliser caché pour récupérer les données La méthode d'amélioration consiste à utiliser la session pour enregistrer les données cachées →[1-5.]<🎜. >8. La valeur de l'élément
9. Lorsque vous écrivez du SQL, écrivez-le en combinaison avec des variables. Vérifiez d'abord puis soumettez (filtrez les variables soumises par l'utilisateur avant de les mettre dans le texte SQL) →[2-1.]
10. Lors de l'assemblage de SQL, entrez les données (') et le point-virgule (; ) doit être traité. La raison est la même que 9) →[2-1.]
11. N'intégrez pas le mot de passe de la base de données dans le script. Concernant les paramètres des données sensibles, vous pouvez les définir dans le fichier de configuration, et Windows peut les définir dans le registre. →[2-2.]
12. Lors de l'accès à la base de données, les autorisations des utilisateurs sont définies séparément. Les différentes autorisations utilisateur sont différentes et peuvent être obtenues à l'aide des paramètres d'autorisation de la base de données, ce qui contribue à améliorer la sécurité. →[2-3.]
13. Importation du package de classe Java. Importez uniquement les classes requises et n'importez pas les packages et les classes inutilisés. Cela contribuera à améliorer la sécurité et empêchera d'autres personnes d'utiliser des classes redondantes pour obtenir des informations, en particulier plusieurs packages de classes sensibles →[3-1.]
14. . Utilisez les paramètres du fichier de stratégie de sécurité (politique) pour contrôler les autorisations d'exécution des fichiers.
Chemin du fichier : ${java.home}/lib/security/java.policy
→[3-1.]package org.penglee.policy.test; //permission java.io.FilePermission "c://winnt//system32//notepad.exe", "execute"; import java.io.IOException; public class NoSecurityManager { public static void main(String[] args) { // SecurityManager mySecurityManager = new SecurityManager (); // System.setSecurityManager (mySecurityManager); try { Runtime myRuntime = Runtime.getRuntime (); myRuntime.exec ("c://winnt//system32//notepad.exe"); } catch (IOException e) { e.printStackTrace(); } } }
Définir comme privé. Classe (privée) pour restreindre la modification des données dans la classe, ou définir une interface pour l'implémenter. →[3-2.]
16. Les données sérialisées par le programme ne sont pas cryptées. Pour empêcher que les données sérialisées ne soient utilisées pour lire des données sensibles, des données transitoires peuvent être utilisées pour traiter les données sérialisées. →[3-3.]
17. Utilisez les classes finales sauf celles qui doivent évidemment être héritées. Cela empêche l’exploitation de l’héritage pour obtenir des informations sensibles. →[3-4.]
18. Utilisez AssertionError pour générer des erreurs. Veuillez vous référer à la documentation de l'API de cette classe pour plus de détails →[3-5.]
19. Faites attention à l'incohérence des données causée par la synchronisation des threads pour augmenter la sécurité des données. →[3-6.]
20. Évitez les chemins relatifs dans l'entrée. Une erreur se produit lorsqu'un chemin relatif est inclus. La raison peut être que des dossiers frères et sœurs sont consultés. →[4-1.]
26. Essayez d'éviter les mots de passe en texte clair. Il est préférable de crypter les données sensibles. Il est recommandé d'utiliser le cryptage sha → [9-1.]
27. →[9-1.]
28.29. Utilisez le programme pour vérifier le chemin (éviter les chemins relatifs) pour vérifier la sécurité du nom du fichier et des données, et signaler une erreur s'il contient des caractères spéciaux. →[9-2.]
30.31. Afin de ne pas trop en apprendre, soyez très prudent lorsque vous faites le message d'erreur lors de la connexion. Les messages d'erreur destinés aux utilisateurs ne devraient pas suffire à empêcher les utilisateurs de déduire des informations sur la structure interne du programme. →[9-3.]
32. Minimisez la partie du traitement des données qui nécessite une utilisation privilégiée et essayez d'éviter la prévalence des privilèges généraux de traitement des données. Utilisez un nom d'utilisateur avec moins d'autorisations pour vous connecter et essayez d'éviter d'utiliser des autorisations spéciales pour traiter des données générales. →[9-4.]
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!