IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

[JSP] Sécurité lors de l'envoie d'un mail


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut [JSP] Sécurité lors de l'envoie d'un mail
    Bonjour, j'ai un site web qui propose d'envoyer un mail à l'administrateur de ce site depuis une page Contact. Voici comment j'ai créer mes JSP:

    Contact.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    <html>
    	<head>
    		<title>Mail API</title>
    	</head>
    	<body>
    		<table border="1" width="50%"  cellpadding="0" cellspacing="0">
    			<tr>
    				<td width="100%">
    					<form method="POST" action="mail.jsp">
    								<table width="100%" cellpadding="0" cellspacing="5"
    									bgcolor="#BABABA">
    									<tr class="styleContactBig">
    										<td><b> En savoir plus ? Être contacté ? une info ? un
    												commentaire ? </b>
    										</td>
    									</tr>
    									<tr>
    										<td>&nbsp;</td>
    									</tr>
    									<tr class="styleContactSmall">
    										<td>&nbsp;&nbsp;&nbsp;&nbsp; nom <input name="nom"
    											type="text" style="float: right" size="30" />
    										</td>
    									</tr>
    									<tr class="styleContactSmall">
    										<td>&nbsp;&nbsp;&nbsp;&nbsp; pr&eacute;nom <input
    											name="prenom" type="text" style="float: right" size="30" />
    										</td>
    									</tr>
    									<tr class="styleContactSmall">
    										<td>&nbsp;&nbsp;&nbsp;&nbsp; société <input name="societe"
    											type="text" style="float: right" size="30" />
    										</td>
    									</tr>
    									<tr class="styleContactSmall">
    										<td>&nbsp;&nbsp;&nbsp;&nbsp; email <input name="email"
    											type="text" style="float: right" size="30" />
    										</td>
    									</tr>
    									<tr>
    										<td>&nbsp;</td>
    									</tr>
    									<tr class="styleContactSmall">
    										<td>&nbsp;&nbsp;&nbsp;&nbsp; votre message <textarea
    												name="texte" cols="35" rows="10" class="inputVotreMessage"
    												style="float: right; text-align: left;" type="text"></textarea>
    										</td>
    									</tr>
    									<tr>
    										<td>&nbsp;</td>
    									</tr>
    									<tr class="styleContactSmall">
    										<td><input name='soumettre' type='submit' value='Envoyer'
    											style="float: right;">
    										</td>
    									</tr>
    								</table>
    							</form>
    				</td>
    			</tr>
    		</table>
    	</body>
    </html>
    mail.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <%@ page language="java"
    	import="javax.naming.*,java.io.*,javax.mail.*,javax.mail.internet.*,com.sun.mail.smtp.*,java.util.*"%>
    <html>
    <head>
    <title>Mail</title>
    </head>
    <body>
    	<%
                    try {
                            // Creation du properties
                            Properties props = System.getProperties();
                            props.put("mail.smtp.host", "smtp.gmail.com");
                            props.put("mail.smtp.auth", "true");
                            props.put("mail.smtp.port", "monPort");
                            props.put("mail.smtp.socketFactory.port", "monPort");
                            props.put("mail.smtp.socketFactory.class",
                                            "javax.net.ssl.SSLSocketFactory");
                            props.put("mail.smtp.socketFactory.fallback", "false");
     
                            // Creation d'une session mail à partir du properties
                            Session mailSession = Session.getDefaultInstance(props,
                                            new javax.mail.Authenticator() {
     
                                                    protected PasswordAuthentication getPasswordAuthentication() {
                                                            return new PasswordAuthentication(
                                                                            "monAddresse", "monMotDePasse");
                                                    }
                                            });
     
                            // Creation d'un message mail au format MIME
                            MimeMessage message = new MimeMessage(mailSession);
     
                            message.setFrom(new InternetAddress("monAddresse"));
                            message.addRecipient(Message.RecipientType.TO,
                                            new InternetAddress( request.getParameter("email")));
                            message.setSubject("subject");
                            String contenuMail = "nom: " + request.getParameter("nom")
                                            + "\nprenom: " + request.getParameter("prenom")
                                            + "\nsociete: " + request.getParameter("societe")
                                            + "\nemail: " + request.getParameter("email")
                                            + "\n\nMessage: " + request.getParameter("texte");
                            message.setContent(contenuMail, "text/plain");
     
                            Transport.send(message);
                            //out.println("Thanks for sending mail!");
     
                    } catch (Exception e) {
                            out.println(e.getMessage());
                            e.printStackTrace();
                    }
     
                    response.sendRedirect("Accueil.html");
            %>
    </body>
    </html>
    Mon code est fonctionnel, mon problème vient plutôt de la sécurité de l'adresse mail que j'utilise pour l'envoie de mail. Y a t-il un moyen d'éviter de noter le mot de passe en dur sur la page jsp?

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Ca ne repondra pas à ta question, mais l'usage veut que ces propriétés soient externes à ton application, en d'autres termes que ton appli aille chercher ça dans une properties, de sorte que le changement d'un paramètre d'envoi de mail ne necessite pas une relivraison. Ceci dit ca ne répond pas à ta question mais si ce password est vraiment top secret tu peux te faire un petit algo de cryptage, lequel récuperera un texte crypté de ton fichier de propriété et le décryptera

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    Le soucis est qu'on aura accès à distance à l'algo de décryptage. Je pensais créer un serveur SMTP avec un accès seulement interne et sans authentification. Mais cette solution me parait un peu compliquer.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par tupac25 Voir le message
    Le soucis est qu'on aura accès à distance à l'algo de décryptage. Je pensais créer un serveur SMTP avec un accès seulement interne et sans authentification. Mais cette solution me parait un peu compliquer.
    Effectivement c'est une option, ainsi ne seront autorisés que les personnes dont l'email est reconnu par ton serveur SMTP, dans ce cas il faudrait ne pas activer l'authentication comme tu dis, mais moi perso je ne souviens pas avoir mis des password lorsque je codais les envois de mail en java, juste l'email destinataire me suffisait, mais fallait que mon adresse mail soit dans le domaine géré par mon smtp, t'as essayé ça?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 294
    Par défaut
    je ne sais pas comment modifier les adresses gérer par mon smtp. J'utilise une adresse gmail. Je suppose que je suis donc obligé de m’authentifier avec un mot de passe pour l'envoie de mail.

    J'ai essayé de mettre mes properties dans un fichier propre. Mais je viens de voir que le mot de passe doit être fournis explicitement. Ce qui me ramène au point de départ.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par tupac25 Voir le message
    je ne sais pas comment modifier les adresses gérer par mon smtp. J'utilise une adresse gmail. Je suppose que je suis donc obligé de m’authentifier avec un mot de passe pour l'envoie de mail.
    Relis mon post au dessus à ce sujet.
    Citation Envoyé par tupac25 Voir le message
    J'ai essayé de mettre mes properties dans un fichier propre. Mais je viens de voir que le mot de passe doit être fournis explicitement. Ce qui me ramène au point de départ.
    Ba oui c'est ce que je t'ai dit au dessus ,c'est juste de l'externalisation,donc du code propre, avantage de modifier des paramètres externalisés sans relivrer une nouvelle version.

Discussions similaires

  1. [AC-2007] Avertissement de sécurité lors de l'envoi d'e-mail
    Par eli-stein dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/03/2010, 18h17
  2. [Mail] Caractères échappés lors de l'envoi d'un mail
    Par cd090580 dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2007, 15h25
  3. [Mail] Problème lors de l'envoi d'un mail
    Par figo57 dans le forum Langage
    Réponses: 2
    Dernier message: 02/07/2006, 22h55
  4. Problème lors de l'envoie d'un mail (JavaMail)
    Par Invité dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/05/2006, 10h23
  5. [javamail] pb lors de l'envoi d'un mail
    Par mawashee dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 08/09/2005, 16h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo