Maison > Java > javaDidacticiel > Résumé de Java dans la sécurité du développement Web

Résumé de Java dans la sécurité du développement Web

怪我咯
Libérer: 2017-06-25 10:22:06
original
2566 Les gens l'ont consulté

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
%>
Copier après la connexion

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 conversation

7. 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();
                       }
         }
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal