Salut
Comment peux-je sécuriser une connexion à un serveur qui ne supporte pas aucun protocole de cryptage (SSL...) en utilisant le PHP :roll:
Version imprimable
Salut
Comment peux-je sécuriser une connexion à un serveur qui ne supporte pas aucun protocole de cryptage (SSL...) en utilisant le PHP :roll:
a mon avis tu ne peux pas.
Ou ça dépend de ton niveau de tolérance en matière de sécurité :mouarf:
@++
J'ai pas beaucoup d'experiance en PHP mais je croix que theoriuquement c'est possible:
Mon idée:
0- Debut crypt_php
1- Après la requete de la page
crypter son cotenu
2- Ce contenu est arrivé crypté alors on utilise un outil en local pour le décrypter
3- Fin
Ou simplement le protéjer par un password puis pour visualiser on utilise ce password.
Je sais que le theorique est plus facile que le pratique mais s'il vous plait c'est extremement important...
Tout depend du contexte :
est ce que tu veux crypter la connexion dans les 2 sens, par exemple por une transaction bancaire ? -> oublie.
si par contre tu ne souhaite QUE transmettre quelque documents a quelque personne a qui tu pourras donner un mot de passe par un moyen sur ou qui possedent une paire de cle RSA alors dans ce cas c'est possible, php integre des fonction de cryptage. mais dans ce cas en effet il faut que le document soit telechargé puis decrypté en local. regarde la doc de mcrypt.
en fait, tu peux meme via RSA etendre ce prncipe pour permettre a un grand nombre de personne de telecharger un document crypté :
l'utilsateur installe gnupg et genere une paire de cle RSA
quand il veut telecharger le document, il entre sa cle publique dans un formulaire
un script PHP recupre cette clé publique et crypte le document, puis il lance le telchargement
l'utilsateur decrypte le fichier en local grace a gnupg.
je pense que c'est la mons mauvaise solution.
en ait, la vraie question est :
- combein de personne vont utiliser ce service, et ces personne sont elle connue de toi ? si ce n'est que quelque copains, un fichier crypté grace a un mot de passe peut suffire. sinon suis le protocole ci dessus.
je veux crypter la connexion dans les 2sens...
ce service est utiliser seulement par moi...
NB je suis la seule à pouvoir le visualiser pour cela j'ai utiliser ce code
Code:
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138############################################################### # Usage: # Set usernames / passwords below between SETTINGS START and SETTINGS END. # Open it in browser with "help" parameter to get the code # to add to all files being protected. # Example: password_protect.php?help # Include protection string which it gave you into every file that needs to be protected # ############################################################### /* ------------------------------------------------------------------- SAMPLE if you only want to request login and password on login form. Each row represents different user. $LOGIN_INFORMATION = array( 'zubrag' => 'root', 'test' => 'testpass', 'admin' => 'passwd' ); -------------------------------------------------------------------- SAMPLE if you only want to request only password on login form. Note: only passwords are listed $LOGIN_INFORMATION = array( 'root', 'testpass', 'passwd' ); -------------------------------------------------------------------- */ ################################################################## # SETTINGS START ################################################################## // Add login/password pairs below, like described above // NOTE: all rows except last must have comma "," at the end of line $LOGIN_INFORMATION = array( 'user' => 'XXXXXXXX' ); // request login? true - show login and password boxes, false - password box only define('USE_USERNAME', true); ################################################################## # SETTINGS END ################################################################## /////////////////////////////////////////////////////// // do not change code below /////////////////////////////////////////////////////// // show usage example if(isset($_GET['help'])) { die('Include following code into every page you would like to protect, at the very beginning (first line):<br><?php include("' . __FILE__ . '"); ?>'); } // logout? if(isset($_GET['logout'])) { setcookie("verify", ''); // clear password; die("Logged out."); } if(!function_exists('showLoginPasswordProtect')) { // show login form function showLoginPasswordProtect($error_msg) { ?> <html> <head> <title>Please enter password to access this page</title> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> <META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> </head> <body> <style> input { border: 1px solid black; } </style> <form method="post"> <h3>Please enter password to access this page</h3> <font color="red"><?php echo $error_msg; ?></font><br /> <?php if (USE_USERNAME) echo 'Login:<br /><input type="input" name="access_login" /><br />Password:<br />'; ?> <input type="password" name="access_password" /><p></p><input type="submit" name="Submit" value="Submit" /> </form> <br /> </body> </html> <?php // stop at this point die(); } } // user provided password if (isset($_POST['access_password'])) { $login = isset($_POST['access_login']) ? $_POST['access_login'] : ''; $pass = $_POST['access_password']; if (!USE_USERNAME && !in_array($pass, $LOGIN_INFORMATION) || (USE_USERNAME && ( !array_key_exists($login, $LOGIN_INFORMATION) || $LOGIN_INFORMATION[$login] != $pass ) ) ) { showLoginPasswordProtect("Incorrect password."); } else { // set cookie if password was validated setcookie("verify", md5($pass)); } } else { // check if password cookie is set if (!isset($_COOKIE['verify'])) { showLoginPasswordProtect(""); } // check if cookie is good $found = false; foreach($LOGIN_INFORMATION as $kay=>$val) { if ($_COOKIE['verify'] == md5($val)) { $found = true; break; } } if (!$found) { showLoginPasswordProtect(""); } } ?>
je crois qu'il va falloir que tu nous exlique exactement ce que tu veux faire. je crois qu'on est d'accord sur le fait que tu e pourras pas naviguer de facon transparente avec une connexion dans les 2 sens... donc il va falloir du bricolage avec des outils en local. donc : que veux tu faire ? est ce que TOUT doit etre crypté, ou seulement certain truc ? qu'est ce que tu dois envoyer, et qu'est ce que tu dois recevoir de facon cryptée ?