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

Langage PHP Discussion :

Cryptage source image


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut Cryptage source image
    Bonjour,

    J'affiche dans un tableau des images récupérées par ftp. Le problème est que lorsque l'on regarde le code source, est affiché: nom serveur, user et mot de passe... donc niveau sécurité c'est pourri

    Ma question est comment puis-je faire pour remédier à cela? Je ne peux récupérer les images que par ftp.

    Merci par avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le code source PHP ou code source de la page HTML ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Code source HTML... Je tente le base64_encode() en passant par une page intermédiaire mais pas facile.....

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    houlà ! Tu devrais coder une page php qui se chargerait de récupérer ton image sur le serveur ftp et la transmettrait au client.
    Ainsi les accès seraient codés en dur dans un fichier php mais inaccessibles aux clients
    PHP embarque tout nativement, zieute donc par ici

  5. #5
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    J'ai tout fait dans la même page, mais je ne sais pas comment 'jongler' entre les 2...
    J'ai tenté ça mais ne fonctionne pas...

    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
    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
     
    <?php
     
    $ftp_pathfile ="";
    session_start();
    require("files/config.php");
    error_reporting(0);
    set_time_limit(0);
     
     
    $conn_id = ftp_connect($ftp_host, 22, 150);
    $login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
    $mode = ftp_pasv($conn_id, TRUE);
    if ((!$conn_id) || (!$login_result)) {
            echo "La connexion FTP a échoué!";
            echo "Tentative de connexion au serveur $ftp_host pour l'utilisateur $ftp_username";
            exit;
        } else {
            //echo "Connexion au serveur $ftp_host pour l'utilisateur $ftp_username".'<br>';
        }
     
    //echo "Dossier courant : " . ftp_pwd($conn_id)."\n";
    if (ftp_chdir($conn_id, ".")) {
        echo "Le dossier courant est maintenant: /".$ftp_pathfile.'<br>';
    } else {
        //echo "Impossible de changer de dossier\n";
    }
    echo '<hr>';
     
    $folder_exists = (!is_dir('ftp://'.$ftp_username.':'.$ftp_password.'@'.$ftp_host.':22/'.$ftp_pathfile)) ? false : true;
    if($folder_exists == false)
    {
    	echo "<b>Error:</b> Le fichier spécifié n'existe pas.";
    	exit;
    }
     
    $rawfiles = ftp_rawlist($conn_id, $ftp_pathfile, true);
    ftp_close($conn_id);
     
    $structure = array();
    $arraypointer = &$structure;
    foreach ($rawfiles as $rawfile) {
        if ($rawfile[0] == '/') {
            $paths = array_slice(explode('/', str_replace(':', '', $rawfile)), 1);
            $arraypointer = &$structure;
            foreach ($paths as $path) {
                foreach ($arraypointer as $i => $file) {
                    if ($file['text'] == $path) {
                        $arraypointer = &$arraypointer[ $i ]['children'];
                        break;
                    }
                }
            }
        } elseif(!empty($rawfile)) {
            $info = preg_split("/[\s]+/", $rawfile, 9);        
            $arraypointer[] = array(
                //'text'   => $info[8],
                //'isDir'  => $info[0]{0} == 'd',
                //'size'   => byteconvert($info[4]),
                //'chmod'  => chmodnum($info[0]),
                //'date'   => strtotime($info[1] . ' ' . $info[2] . ' ' . $info[3]),
                'raw'    => $info
                // the 'children' attribut is automatically added if the folder contains at least one file
            );
        }
    }
     
    $temp_path_file=array();
    for($a=0;$a<sizeof($structure);$a++){
    	$temp_path_file[]="ftp://".$ftp_username.":".$ftp_password."@".$ftp_host.":22"."/".$ftp_pathfile."/".$structure[$a]['raw'][3];
    	$file_link = 'files/download.php?file='.base64_encode($temp_path_file[$a]);
    }
    // in $structure is all the data
    var_dump($structure);
    //var_dump($temp_path_file);
     
    ?>
    <!DOCTYPE html>
    <html>
    	<head>
    		<title></title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
    		<style>body{font-family: "Courier New", Courier, monospace; padding: 0; margin: 0;}</style>
    	</head>
     
    	<body>
    		<div class="bs-example">
    			<table class="table table-striped" border=1>
    				<thead>
    					<tr>
    						<th>Ligne</th>
    						<th>Nom</th>
    						<th>Date</th>
    						<th>Taille</th>
    						<th>Thumbnail</th>
    					</tr>
    				</thead>
    				<tbody>
    					<?php 
    						for($a=0;$a<sizeof($structure);$a++){
    							If (pathinfo($structure[$a]['raw'][3], PATHINFO_EXTENSION) == "jpg"){
    							echo '<tr>
    									<td>'.$ftp_pathfile.'</td>
    									<td>'.$structure[$a]['raw'][3].'</td>
    									<td>'.$structure[$a]['raw'][0].'</td>
    									<td>'.$structure[$a]['raw'][2].'</td>
    									<td><img src="'.$file_link[$a]['raw'][3].'" width="320" height="240" title="'.$structure[$a]['raw'][3].'"></td>
    						</tr>';}}
    						?>
    				</tbody>
    			</table>	
    		</div>	
    	</body>
    </html>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ai tout fait dans la même page
    Justement ce n'est pas ce qu'il faut faire.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Oui, mais je ne sais pas comment faire pour intéragir entre mes 2 pages... Quelle page crypte, récupère les fichiers, en gros la mise en forme...
    Que dois faire ma page 'Index', que doit faire ma page 'function'?

  8. #8
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    j’essaie de faire cela, mais ça ne doit pas être la bonne voie...

    Index.php:
    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
    <?php
    session_start();
    require("files/config.php");
    require("files/download.php");
    error_reporting(0);
    set_time_limit(0);
    ?>
    <!DOCTYPE html>
    <html>
    	<head>
    		<title></title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>
    		<style>body{font-family: "Courier New", Courier, monospace; padding: 0; margin: 0;}</style>
    	</head>
     
    	<body>
    		<div class="bs-example">
    			<table class="table table-striped" border=1>
    				<thead>
    					<tr>
    						<th>Ligne</th>
    						<th>Nom</th>
    						<th>Date</th>
    						<th>Taille</th>
    						<th>Thumbnail</th>
    					</tr>
    				</thead>
    				<tbody>
    					<?php 
    						for($a=0;$a<sizeof($structure);$a++){
    							If (pathinfo($structure[$a]['raw'][3], PATHINFO_EXTENSION) == "jpg"){
    									$file=$structure[$a]['raw'][3];
    							echo '<tr>
    									<td>'.$ftp_pathfile.'</td>
    									<td>'.$structure[$a]['raw'][3].'</td>
    									<td>'.$structure[$a]['raw'][0].'</td>
    									<td>'.$structure[$a]['raw'][2].'</td>
    									<td><img src="files/download.php?file='.$file.'" width="320" height="240" title="'.$structure[$a]['raw'][3].'"></td>
    						</tr>';}}
    						?>
    				</tbody>
    			</table>	
    		</div>	
    	</body>
    </html>
    Download.php:

    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?PHP
    require("config.php");
    $conn_id = ftp_connect($ftp_host, 22, 150);
    $login_result = ftp_login($conn_id, $ftp_username, $ftp_password);
    $mode = ftp_pasv($conn_id, TRUE);
    if ((!$conn_id) || (!$login_result)) {
            echo "La connexion FTP a échoué!".'<br>';
            echo "Tentative de connexion au serveur $ftp_host pour l'utilisateur $ftp_username";
            exit;
        } else {
            //echo "Connexion au serveur $ftp_host pour l'utilisateur $ftp_username".'<br>';
        }
     
    //echo "Dossier courant : " . ftp_pwd($conn_id)."\n";
    if (ftp_chdir($conn_id, ".")) {
        echo "Le dossier courant est maintenant: /".$ftp_pathfile.'<br>';
    } else {
        //echo "Impossible de changer de dossier\n";
    }
    echo '<hr>';
     
    $folder_exists = (!is_dir('ftp://'.$ftp_username.':'.$ftp_password.'@'.$ftp_host.':22/'.$ftp_pathfile)) ? false : true;
    if($folder_exists == false)
    {
    	echo "<b>Error:</b> Le fichier spécifié n'existe pas.";
    	exit;
    }
     
    $rawfiles = ftp_rawlist($conn_id, $ftp_pathfile, true);
    ftp_close($conn_id);
     
    $structure = array();
    $arraypointer = &$structure;
    foreach ($rawfiles as $rawfile) {
        if ($rawfile[0] == '/') {
            $paths = array_slice(explode('/', str_replace(':', '', $rawfile)), 1);
            $arraypointer = &$structure;
            foreach ($paths as $path) {
                foreach ($arraypointer as $i => $file) {
                    if ($file['text'] == $path) {
                        $arraypointer = &$arraypointer[ $i ]['children'];
                        break;
                    }
                }
            }
        } elseif(!empty($rawfile)) {
            $info = preg_split("/[\s]+/", $rawfile, 9);        
            $arraypointer[] = array(
                //'text'   => $info[8],
                //'isDir'  => $info[0]{0} == 'd',
                //'size'   => byteconvert($info[4]),
                //'chmod'  => chmodnum($info[0]),
                //'date'   => strtotime($info[1] . ' ' . $info[2] . ' ' . $info[3]),
                'raw'    => $info
                // the 'children' attribut is automatically added if the folder contains at least one file
            );
        }
    }
     
    //$temp_path_file=array();
    //for($a=0;$a<sizeof($structure);$a++){
    	//$temp_path_file[]="ftp://".$ftp_username.":".$ftp_password."@".$ftp_host.":22"."/".$ftp_pathfile."/".$structure[$a]['raw'][3];
    	//$file_link = $temp_path_file[$a];
    //}
     
    //var_dump($structure);
    //var_dump($temp_path_file);
     
    //$_GET['file'] = base64_encode(rawurldecode(base64_decode($_GET['file'])));
    //$file_path = base64_decode($_GET['file']);
    //echo $file_path.'<br>';
    //exit;
    ?>

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Enfin... il faudrait faire une pause sur ce que tu cherches à faire.
    Si à chaque fois qu'un utilisateur vient sur ta page, tu dois aller chercher les images sur le serveur FTP alors pourquoi les images sont sur le serveur FTP et pas directement sur le serveur web ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Mes images sont stockées sur un serveur (le contenu de mon dossier est bien sur dynamique... images enregistrées automatiquement, supprimées au bout d'un certain temps...).

    Je récupère les images via une connexion ftp car je n'ai pas de serveur web d'activer sur ce serveur...

    C'est pour cela que je procède de la sorte (sûrement pas la meilleur)...

    Si vous avez des solutions alternatives je suis preneur

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Organise une copie planifiée du serveur FTP vers le serveur web.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Justement, je ne veux pas faire de copie...

    Je tourne en rond et à chaque fois je tombe sur la même problématique...

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourquoi tu ne veux pas faire de copie.
    Le client ne peux pas aller chercher le fichier sur le FTP donc sous une forme ou sous une autre, il finira toujours sur le serveur.
    Donc autant le faire de manière économique.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    je reviens vers vous...

    Je veux bien un exemple concret si cela ne dérange pas...

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Un exemple concret de quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre régulier
    Homme Profil pro
    Touche à tout
    Inscrit en
    Mai 2017
    Messages
    437
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Touche à tout

    Informations forums :
    Inscription : Mai 2017
    Messages : 437
    Points : 109
    Points
    109
    Par défaut
    Je reste sur mon idée de base, pas de copie (les images sur mon serveur sont déjà des copies).

    Je veux crypter cette satanée URL

Discussions similaires

  1. problème source image
    Par MartinChaize dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 31/08/2010, 12h39
  2. Problème Changement Source Image
    Par snoups58 dans le forum Silverlight
    Réponses: 4
    Dernier message: 01/07/2010, 11h12
  3. <Image Source="image.tif" /> ?
    Par TotorLeCastor dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 26/11/2008, 11h34
  4. Cryptage d'images
    Par cjacquel dans le forum MFC
    Réponses: 5
    Dernier message: 11/05/2006, 09h55

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