Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4306 connectés 

 


Dernière réponse
Sujet : [Java] Socket, Securité IE
gfive Normalement, une applet non signée ne peut ouvrir de connection réseau QUE vers la machine d'où elle a été téléchargée...Si ton applet doit être utilisée par d'autres que toi, je te déconseille les solutions à base d'install de packages MS :  
1 - les gens qui utilisent IE les ont pas forcément,  
2 - les gens qui utilisent pas IE seront baisés

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
gfive Normalement, une applet non signée ne peut ouvrir de connection réseau QUE vers la machine d'où elle a été téléchargée...Si ton applet doit être utilisée par d'autres que toi, je te déconseille les solutions à base d'install de packages MS :  
1 - les gens qui utilisent IE les ont pas forcément,  
2 - les gens qui utilisent pas IE seront baisés
[FDS] Remplace ca:
Socket s = new Socket("127.0.0.1",useport);
PolicyEngine.assertPermission(PermissionID.NETIO);
...
 
par ca:
PolicyEngine.assertPermission(PermissionID.NETIO);
Socket s = new Socket("127.0.0.1",useport);
...
 
Les permissions doivent être définies avant les accès IO
 
 
Je te donne 2 fichiers bat pour la creation et la signature du cab
 
creerCAB.bat
------------
@echo off
 
echo -----------------------------------
echo Creation de l'archive sock.cab
echo -----------------------------------
cabarc -p -r n sock.cab *.class
 
 
signerCAB.bat
-------------
@echo off
 
echo -----------------------------------
echo Signature du fichier sock.cab
echo -----------------------------------
setreg 1 true
 
IF NOT EXIST certificat.cer makecert -sk cle -n "CN=CtHuLhU50" certificat.cer
IF NOT EXIST certificat.spc cert2spc certificat.cer certificat.spc
 
signcode -j javasign.dll -jp LOW -spc certificat.spc -k cle sock.cab
CtHuLhU50 voila envoyer mais le code est bon c le certificat micro$oft ki plante enfin il plante pas mais ca marche po
[FDS] regarde tes messages privées
CtHuLhU50 Oui je port 12 est ouvert ! :)
[FDS] le port 12 de ta machine est ouvert ???
CtHuLhU50 cab
 
<HTML>
<HEAD>
<TITLE>Java Socket</TITLE>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="localhost" CONTENT="no-cache">
</HEAD>
<BODY>
 
<APPLET ARCHIVE="sock.cab" CODE="sock.class" WIDTH=300 HEIGHT=200 ALT="Vous ne pouvez lire les applets Java" BORDER=0>
</APPLET>
</BODY>
</HTML>
[FDS] tu as mis ton applet dans un cab ou un jar ?
 
c quoi le code de la page html
CtHuLhU50 tout est fait le NETIO  et l'applet est singet !  :eek2:
[FDS] ton pb peut venir de pas mal de choses
 
Modifie la permission NETIO en SYSTEM pour avoir tout les droits
PermissionID.SYSTEM
 
Est-ce que tu utilises d'autres archives que celle qui contient ton applet, si oui tu dois les signer aussi.
CtHuLhU50 par defaut
[FDS] Tu as quoi comme paramètres de sécurité dans IE
CtHuLhU50 tjr la meme !
com.ms.security.SecurityExceptionEx[ListenerBouton.actionPerformed]: cannot access "127.0.0.1":12
 
L'applet est signé avec sdk
[FDS] Tu as quoi comme erreur !
CtHuLhU50 up please une réponse !!!
CtHuLhU50 Ca marche toujours pas !
[FDS] Avant il faut que ton applet soit dans une archive jar ou cab
 
Je te donne un exemple avec une applet archivée dans un cab
 
Tu dois d'abord downloader le sdk de microsoft:
http://www.microsoft.com/java/sdk/default.htm
 
// Création d'un cab
cabarc -p -r n monApplet.cab monApplet.class
 
// Création d'un certificat pour la signature de l'archive cab
makecert -sk cle -n "CN=BLABLA" certificat.cer
cert2spc certificat.cer certificat.spc
 
// Signature du cab
signcode -j javasign.dll -jp LOW -spc certificat.spc -k cle monApplet.cab
 
pour plus d'infos
http://www.microsoft.com/Java/security/default.htm
 
Le mieux serait de signer ton applet(dans une archive jar) avec les outils de Sun mais ca déconnait chez moi à cause d'IE et son système de sécurité à la con. Si jamais tu utilise la méthode de Sun et que ca marche ca m'intéresse.
[FDS] Tu dois signer ton applet
antsite J'ai trouvé le .zip. Ca compile sans erreur, mais le résultat est toujours le même.
Voici le bout de code :
 
PolicyEngine.assertPermission(PermissionID.NETIO);
 
try
{
 Socket s = new Socket("127.0.0.1",1050);
 DataOutputStream fout = new DataOutputStream(s.getOutputStream());
 fout.writeChars("Si ca marche, c'est top !" );
   
 s.close();
 source.setText("Data sent" );
}
catch(Exception except)
{
 source.setText(except.toString());
}
[FDS] Tu dois trouver une archive zip qui contient les classes Java de Microsoft dont les classes du package com.ms.security. Apparement le fichier n'a pas tjs le même nom mais il doit faire 5mo.
antsite Merci beaucoup, mais je n'ai nulle part sur mon disque (notemment dans windows\java\packages) le fichier Ljnxb5bl.zip.
Comment faire ?
[FDS] IE a son propre SecurityManager pour gérer la sécurité avec les applets Java.
 
Tu dois insérer dans ton code (avant l'envoi de ta String) cette ligne pour autoriser les accès réseau :
PolicyEngine.assertPermission(PermissionID.NETIO);
 
PolicyEngine est une classe Microsoft du package com.ms.security, tu dois donc ajouter dans ton classpath le fichier Ljnxb5bl.zip qui se trouve chez moi dans le répertoire winnt\Java\Packages.
 
Pour plus d'infos
http://support.microsoft.com/suppo [...] 5/6/22.ASP
antsite Je souhaite tout simplement en voyer une String vers une IP. Quand je lance l'action, j'obtiens avec Internet Explorer le message 'Exception' suivant :
 
com.ms.security.SecurityExceptionEx[ListenerBouton.actionPerformed]: cannot access "127.0.0.1":1050
 
j'ai fais un  
try {envoi des données}
catch{exception}
 
Il fait l'exception et n'envoie rien.
Merci de votre aide.

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)