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

Apache Discussion :

Problème d'authentification client sur serveur Apache


Sujet :

Apache

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut [résolu] Problème d'authentification client sur serveur Apache
    Bonsoir à tous,

    J'ai bloqué il y a quelques semaines sur ce problème et personne sur le forum Apache n'a réussi à m'aider. Ce forum sur lequel j'ai posté à l'époque n'ayant pas l'air très vivant je me dis que j'aurais peut-être plus de chance sur la section Apache de ces forums-ci, en effet j'imagine qu'il y a bien plus de monde chez vous.
    Je viens de poster mon problème sur un forum PHP (puisque l'application est en PHP) et sur le forum Fedora (puisque le serveur est sous Fedora), je me dis qu'en postant auprès de 3 sortes de spécialistes de différents domaines j'aurais peut-être la chance de débloquer la situation.

    Je suis chargé d'essayer de refaire marcher un jeu qui fonctionnait sur un mode client-serveur, et ce dans l'objectif d'en mettre le code sous GPL.
    En bref, c'est pour la bonne cause, et je pense sincèrement que ce jeu pourrait être une vraie réussite du Libre. En tous cas, en tant qu'ancien joueur je trouve que ce jeu déchirait tout et je vous jure qu'en plus c'est un jeu original.

    Seul problème, nous n'avons récupéré que les sources et pas le serveur en fonction, ainsi il s'agit de tout reconstruire et de deviner parfois le fonctionnement.

    Après pas mal de temps passé dessus, ça a beaucoup avancé, la partie "web" semble entièrement fonctionner, la partie serveur de jeu aussi mais nous bloquons sur une dernière chose (du moins je l'espère parce qu'avec les centaines d'heures déjà passé dessus j'avoue que parfois je sens le découragement pointer...) : L'authentification du client auprès du serveur.

    Contexte :

    -Le jeu tournait sous PHP4, Mysql et Apache 1.3

    -Nous essayons de le faire tourner sur PHP5 et Apache 2 (ce qui explique peut-être ce problème d'"auth failed" mais je n'en sais rien).


    État actuel de notre avancée :

    Site web pleinement fonctionnel, possibilité de télécharger le client (windows, mais il semble possible assez facilement de porter le client sur GNU-Linux si un jour on arrive à faire enfin marcher le serveur), après installation il télécharge bien les patches de mise à jour, parvient à se connecter au serveur de jeu mais ne parvient pas à s'identifier. Les noms et mots de passe des users sont stockés dans Mysql en clair.

    J'ai sniffé les conversations sur le poste windows pour essayer de mieux comprendre ce qui se passe mais je n'arrive pas à trouver de solution.
    Voici les logs :
    10.0.2.15 est le client. 192.168.0.7 est le serveur fedora.
    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
    4	10.0.2.15	192.168.0.7	HTTP	POST /members/login.php HTTP/1.1  (application/x-www-form-urlencoded)
    POST /members/login.php HTTP/1.1.. Content-Type: application/x-www- form-url encoded.
    User-Agent: applicationcenter..Host: center.application.net Content-Length : 16..Cache-Control: no- cache..
    Cookie: PHPSESSID=8780tfvajcbvrvtmoqm901lbs7....&language =french 
    
    5	0.015368	192.168.0.7	10.0.2.15	TCP	http > xingmpeg [ACK] Seq=1 Ack=250 Win=65535 Len=0
    
    6	0.061090	192.168.0.7	10.0.2.15	HTTP	HTTP/1.1 200 OK  (text/html) OK Date: Fri, 08 Jan  2010 17:52:56 G MT..
    Server: Apache/2.2.11 (Fedora)..X-Powered-By : PHP/5.2.11..Expires: Thu, 19 Nov 1981:08:52:00  GMT..
    Cache-Control: no-store, no-cache,must-revalidate, post-check=0,pre-chec k=0..Pragma: no- cache..Content-Length: 54..
    Content-Type:text/ht ml....<?xml version="1.0" encoding="utf-8"?>.<auth_failed/>.         
    
    7	0.074005	10.0.2.15	192.168.0.7	TCP	web2host > http [SYN] Seq=0 Win=64240 Len=0 MSS=1460
    
    8	0.081617	192.168.0.7	10.0.2.15	TCP	http > web2host [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1460
    
    9	0.081782	10.0.2.15	192.168.0.7	TCP	web2host > http [ACK] Seq=1 Ack=1 Win=64240 Len=0
    
    10	0.084574	10.0.2.15	192.168.0.7	HTTP	POST /applog.php HTTP/1.1  (application/x-www-form-urlencoded)
    POST /applog.php HTTP/1.1.Content -Type: application/x-www-form-urlencoded..User-Agent: applicationcenter..Host: site.application.net.Content-Length:  170..Cache-Cont rol: no-cache... .&submodule=HTTP AuthRequest&module=CApplicationCenterDlg&logname=login%5Ffailed
    &app=center&comment=result+is+a+failed+xml&arg1=nom_user&arg2=NULL&arg3=NULL&version= v2%2E0%2E11              
    
    11	0.088578	192.168.0.7	10.0.2.15	TCP	http > web2host [ACK] Seq=1 Ack=350 Win=65535 Len=0
    
    12	0.123863	192.168.0.7	10.0.2.15	HTTP	HTTP/1.1 200 OK 
    HTTP/1.1 200 OK..Date: Fri, 08 Jan  2010 17:52:56 G MT..Server: Apache/2.2.11 (Fedora)..X-Powered-By : PHP/5.2.11..Content-Length: 0. .Content-Type: text/html      
    
    13	0.187877	10.0.2.15	192.168.0.7	TCP	xingmpeg > http [ACK] Seq=250 Ack=351 Win=63890 Len=0
    
    14	0.279039	10.0.2.15	192.168.0.7	TCP	web2host > http [ACK] Seq=350 Ack=159 Win=64082 Len=0
    Je ne sais pas s'il s'agit d'un problème avec Apache (ce que je pense) ou avec PHP (auquel cas je peux vous poster le code des fichiers appelés par le client, login.php, applog.php). Je peux aussi vous donner une liste des modules activés et un tas d'autres choses, mais ayant peur de vous noyer sous trop d'infos et de n'avoir aucune réponse, j'attends déjà de voir s'il semble y avoir des gens motivés pour m'aider.

    Je suis quelqu'un de très bonne volonté et très motivé, certainement pas du genre à ne pas RTFM ou STFW, mais là ce point dépasse vraiment mes compétences, autant j'ai réussi à m'en sortir sur tout le reste, autant je sèche sur ce problème d'"auth failed", donc toute piste est la bienvenue.

    J'ai plusieurs pistes, dont une qui me parait intéressante ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    comment=result+is+a+failed+xml&arg1=nom_user&arg2=NULL&arg3=NULL
    En effet, l'arg1 comporte bien le nom d'user mentionné, mais le arg2 qui est censé contenir le mot de passe et le 3 censé donné la langue (1 pour français et 2 pour anglais) n'apparaissent pas, ce qui me parait étrange.

    Comme je l'expliquais j'ai plusieurs pistes ou idées (problème d'encodage, etc), j'ai essayé pleins de trucs mais rien ne fonctionne. Donc si une pointure (ou plusieurs, plus on est de fous plus on rit !) acceptait de nous offrir un peu de son temps pour essayer de nous sortir de là et permettre à un nouveau jeu sous GPL de voir le jour, ce serait vraiment la fête

    Merci de m'avoir lu

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    As-tu également regardé dans l'error_log du serveur apache? voir s'il n'y aurait pas d'éventuelles erreurs?

    Pourrais-tu également fournir le code qui gère l'authentification côté serveur?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    L'error log d'Apache ne mentionne rien du tout malheureusement...
    Je vais de ce pas chercher les codes des fichiers php...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Pourrais-tu éventuellement passer le loglevel en debug au niveau de l'apache redémarrer apache et refaire un test?


  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Merci pour cette réponse.

    Donc, voici le login.php appelé en premier :
    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
    <?
    include_once (getenv('SITE_LIB_PATH')."/common.php");
    include_once (getenv('SITE_LIB_PATH')."/lib_xml.php");
    include_once (getenv('SITE_LIB_PATH')."/lib_user.php");
    include_once (getenv('SITE_LIB_PATH')."/lib_keys.php");
    include_once (getenv('SITE_LIB_PATH')."/lib_sitelang.php");
    include_once ("authlib.php");
     
    pt_register('SERVER', 'REQUEST_METHOD');
    pt_register($REQUEST_METHOD,'login','pass','language');
     
     
     
    if ($login && DEV_MODE) //only for development
    {
    	$_SESSION['T_USER']=$login;
    	$_SESSION['T_PASS']=$pass;
    }
     
    $user=CheckAuth();
    $usr_id=$user['usr_id'];
     
    userLog($usr_id,"login","");
     
    $date = date("Y-m-d H:i:s",mktime());
    $query="update {$GLOBALS['T_USER']} set usr_datetime_lastlogin='$date' where usr_id='$usr_id'";
    mysql_query ( $query ) or die( "Bad query: '$query' : ".mysql_error() );
     
    $array="";
    $expiredText=getExpirationWarningText($user,$language);
    if (!$expiredText)
    	$expiredText=getExpiredText($user,$language);
    if ($expiredText)
    	$array=array("expiration_warning" => $expiredText);
     
     
    $xml=new XMLPrinter();
    $xml->header();
    $xml->simpleNode("auth_ok","",$array);
    ?>
    Ce fichier appelle entre autres le common.php que voici :
    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
    <?
    define("USE_END_SUBSCRIPTION",0);
    define("FREE_MODE",1);
     
    include_once (getenv('SITE_INCLUDE_PATH')."/pathes.php");
    include_once (getenv('SITE_INCLUDE_PATH')."/db.php");
    include_once (getenv('SITE_INCLUDE_PATH')."/version.php");
     
    include_once ("sql_tables.php");
     
    include_once ("sys.php");
    include_once ("lib_sql.php");
    include_once ("lib_lang.php");
    include_once ("lib_log.php");
    include_once ("lib_properties.php");
    ?>
    Tous les fichiers appelés dans le common.php semblent fonctionner parfaitement puisque la totalité du site et des autres applications fonctionnent.

    Voici aussi le lib_xml.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
    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
    <?
     
    class XMLPrinter
    {
    	//public part
     
    	function XMLPrinter()
    	{
    		$this->encoding="ISO-8859-1";
    		$$this->stack=array();
    	}
     
    	function header()
    	{
    		echo "<?xml version=\"1.0\" encoding=\"$this->encoding\"?>\n";
    	}
     
    	function pushNode($nodename,$attributes="")
    	{
    		echo $this->spaces()."<$nodename".$this->args2string($attributes).">\n";
    		$this->push($nodename);
    	}
     
    	function popNode($nodename)
    	{
    		$stacknode=$this->pop();
    		if ($stacknode!=$nodename)
    		{
    			$this->error("XmlPrinter: Poping Node: expecting '$stacknode' instead of '$nodename'");
    		}
    		echo $this->spaces()."</$nodename>\n";
    	}
     
    	function simpleNode($node,$value,$attributes="")
    	{
    		echo $this->spaces()."<$node".$this->args2string($attributes).">".$this->encode($value)."</$node>\n";
    	}
     
    	//private part
     
    	var $stack;
    	var $encoding;
     
    	function stackSize()
    	{
    		return count($this->stack);
    	}
     
    	function push($node)
    	{
    		$this->stack[$this->stackSize()]=$node;
    	}
     
    	function pop()
    	{
    		if ($this->stackSize()==0)
    		{
    			$this->error("XmlPrinter: Stack is empty");
    		}
    		$node=$this->stack[$this->stackSize()-1];
    		unset($this->stack[$this->stackSize()-1]);
    		return $node;
    	}
     
    	function args2string($args)
    	{
    		if (!$args)
    			return;
     
    		foreach ($args as $arg => $value)
    		{
    			$str .= " $arg=\"".$this->encode($value)."\"";
    		}
     
    		return $str;
    	}
     
    	function spaces()
    	{
    		$nb=$this->stackSize();
    		for ($i=0; $i<$nb; $i++)
    		{
    			$str .= "    ";
    		}
    		return $str;
    	}
     
    	function error($msg)
    	{
    		$stacktrace=debug_backtrace();
    		foreach ($stacktrace as $call)
    		{
    			$file=$call['file'];
    			if (!strpos($file,"lib_xml.php"))
    			{
    				$line=$call['line'];
    				trigger_error("(called from $file:$line) $msg", E_USER_ERROR);
    				exit();
    			}
    		}
    	}
     
    	function encode($str)
    	{
    		return htmlspecialchars($str);
    	}
    }
     
    ?>
    Je le mets car je me demande si ce ne serait pas juste une question d'encodage puisque ce fichier mentionne ISO-8859-1 alors que l'erreur mentionne de l'UTF-8

    Le fichier lib_user.php est plutôt volumineux et pas forcément d'actualité concernant tous les points (de même que le fichier keys.php) en effet à la fin le jeu était gratuit et ne tenait plus compte des clés ou des niveaux il me semble...

    En espérant que ça vous aide à trouver des pistes.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par Mygale1978 Voir le message
    Pourrais-tu éventuellement passer le loglevel en debug au niveau de l'apache redémarrer apache et refaire un test?

    Je viens seulement de voir ta réponse, je regarde de suite.

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Il ne me met rien quand j'essaie de me connecter à partir du client.
    En revanche il vient de me mettre ça (peut-être le moment où j'ai fermé le client) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Sat Jan 09 02:26:51 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4656 for worker proxy:reverse
    [Sat Jan 09 02:26:51 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:26:51 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4656 for (*)
    [Sat Jan 09 02:26:52 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4657 for worker proxy:reverse
    [Sat Jan 09 02:26:52 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:26:52 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4657 for (*)
    [Sat Jan 09 02:26:52 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4658 for worker proxy:reverse
    [Sat Jan 09 02:26:52 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:26:52 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4658 for (*)
    Au moment où j'ai redémarré Apache il a mis ça :
    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
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    [Sat Jan 09 02:22:44 2010] [notice] caught SIGTERM, shutting down
    [Sat Jan 09 02:22:46 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
    [Sat Jan 09 02:22:46 2010] [notice] Digest: generating secret for digest authentication ...
    [Sat Jan 09 02:22:46 2010] [notice] Digest: done
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: www.application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: game.application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: forum.application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: downloadbis.application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: download.application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: center.application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: backoffice.application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: application.net
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: admin.application.net
    [Sat Jan 09 02:22:46 2010] [info] APR LDAP: Built with OpenLDAP LDAP SDK
    [Sat Jan 09 02:22:46 2010] [info] LDAP: SSL support available
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4510 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4510 for (*)
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4511 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4511 for (*)[Sat Jan 09 02:22:44 2010] [notice] caught SIGTERM, shutting down
     
    [Sat Jan 09 02:22:46 2010] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
     
    [Sat Jan 09 02:22:46 2010] [notice] Digest: generating secret for digest authentication ...
     
    [Sat Jan 09 02:22:46 2010] [notice] Digest: done
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: www.application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: game.application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: forum.application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: downloadbis.application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: download.application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: center.application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: backoffice.application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: application.net
     
    [Sat Jan 09 02:22:46 2010] [debug] util_ldap.c(1977): LDAP merging Shared Cache conf: shm=0x1132e60 rmm=0x1132e90 for VHOST: admin.application.net
     
    [Sat Jan 09 02:22:46 2010] [info] APR LDAP: Built with OpenLDAP LDAP SDK
     
    [Sat Jan 09 02:22:46 2010] [info] LDAP: SSL support available
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4510 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4510 for (*)
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4511 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4511 for (*)
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4512 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4512 for (*)
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4513 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4513 for (*)
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4514 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4514 for (*)
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4515 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4515 for (*)
     
    [Sat Jan 09 02:22:47 2010] [notice] Apache/2.2.11 (Unix) DAV/2 PHP/5.2.11 configured -- resuming normal operations
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4516 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4516 for (*)
     
    [Sat Jan 09 02:22:47 2010] [info] Server built: Mar 17 2009 09:15:10
     
    [Sat Jan 09 02:22:47 2010] [debug] prefork.c(1001): AcceptMutex: sysvsem (default: sysvsem)
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4517 for worker proxy:reverse
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
     
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4517 for (*)
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4512 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4512 for (*)
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4513 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4513 for (*)
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4514 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4514 for (*)
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4515 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4515 for (*)
    [Sat Jan 09 02:22:47 2010] [notice] Apache/2.2.11 (Unix) DAV/2 PHP/5.2.11 configured -- resuming normal operations
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4516 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4516 for (*)
    [Sat Jan 09 02:22:47 2010] [info] Server built: Mar 17 2009 09:15:10
    [Sat Jan 09 02:22:47 2010] [debug] prefork.c(1001): AcceptMutex: sysvsem (default: sysvsem)
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1801): proxy: grabbed scoreboard slot 0 in child 4517 for worker proxy:reverse
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1820): proxy: worker proxy:reverse already initialized
    [Sat Jan 09 02:22:47 2010] [debug] proxy_util.c(1914): proxy: initialized single connection worker 0 in child 4517 for (*)
    Je continue de faire des essais.

    Edit : Après une trentaine de tentatives de connexions, rien n'apparait dans l'error-log

  8. #8
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $user=CheckAuth();
    Pourrais-tu fournir l'implémentation de la fonction CheckAuth() également car je ne la vois pas dans les codes que tu as fournis.

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Je cherche tout de suite.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    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
    function CheckAuth()
    {
    	$result=array();
     
    	sqlConnect();
     
    	if (DEV_MODE && isset($_SESSION['T_USER']))
    	{
    		$login=$_SESSION['T_USER'];
    		$password=$_SESSION['T_PASS'];
    	}
    	else
    	{
    		$login=$_SERVER['PHP_AUTH_USER'];
    		$password=$_SERVER['PHP_AUTH_PW'];
    	}
    C'est bien ça que tu voulais (je peux te tutoyer ?) ?

    Ça fait partie du fichier authlib.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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <?
     
    include_once (getenv('SITE_LIB_PATH')."/lib_user.php");
     
    if (DEV_MODE)
    	session_start();
     
    function failed()
    {
    	echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    	echo "<auth_failed/>\n";
    	exit();
    }
     
    function accountNotConfirmed($mail)
    {
    	echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    	echo "<account_not_confirmed mail='$mail'/>\n";
    	exit();
    }
     
    function accountLocked()
    {
    	echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    	echo "<account_locked mail=\"account@application.net\"/>\n";
    	exit();
    }
     
    function confirmMail($error)
    {
    	echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
    	if ($error)
    	{
    		echo "<confirm_mail>\n";
    		echo "    <error>".utf8_encode($error)."</error>\n";
    		echo "</confirm_mail>\n";
    	}
    	else
    		echo "<confirm_mail/>\n";
    	exit();
    }
     
    function CheckAuth()
    {
    	$result=array();
     
    	sqlConnect();
     
    	if (DEV_MODE && isset($_SESSION['T_USER']))
    	{
    		$login=$_SESSION['T_USER'];
    		$password=$_SESSION['T_PASS'];
    	}
    	else
    	{
    		$login=$_SERVER['PHP_AUTH_USER'];
    		$password=$_SERVER['PHP_AUTH_PW'];
    	}
     
    	//find password and usr_id
     
    	$query="select usr_password,usr_id,usr_valid,usr_locked
              from {$GLOBALS['T_USER']}
              where usr_username='$logipsasswordn'";
     
    	$res = mysql_query ( $query ) or die( "Query failed : $query ".mysql_error() );
     
    	if (mysql_num_rows($res)==0)
    		failed();
     
    	$rows = mysql_fetch_array($res, MYSQL_ASSOC);
    	$db_password=$rows['usr_password'];
    	$usr_id=$rows['usr_id'];
    	$usr_valid=$rows['usr_valid'];
    	$usr_locked=$rows['usr_locked'];
     
    	//echo "login: $login\npass $password\nserver $db_password\n";
     
    	if ($db_password!=$password)
    		failed();
     
    	$user = getUserInformation($usr_id);
     
    	if ($usr_locked)
    		accountLocked();
     
     
    	if ($usr_valid == 0)
    	{
    		$time=time()-strtotime($user['usr_datetime_crea']);
    		if ($time>24*60*60) //24 hours
    			accountNotConfirmed($user['usr_email']);
    	}
     
    	return $user;
    }
    ?>

  11. #11
    Invité
    Invité(e)
    Par défaut
    Oui c'est bien le code que je voulais et oui tu peux me tutoyer


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     //find password and usr_id
     $query="select usr_password,usr_id,usr_valid,usr_locked
              from {$GLOBALS['T_USER']}
              where usr_username='$logipsasswordn'"
    A quel niveau/niveau la variable $logipsasswrdn est-elle initialisée?

    de plus Il faudrait savoir à quelle moment l'authentification échoue et dans le code on a un appel de failed() lors de la vérfification de username puis lors de la comparaison du mot de passe.

    Il serait interresant de savoir à quel niveau ça échoue

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Après recherche (grep), sur tous les fichiers php seul authlib.php est susceptible de retourner un "auth_failed", vu qu'Apache ne semble pas être le responsable de ce message le problème vient sans doute de là, mais je dois avouer que ça dépasse mes compétences...

    Edit : J'ai écris en même temps que toi, je cherche et je te dis.

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Y'a eu un bug de copier-coller, il fallait en fait lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     //find password and usr_id
     $query="select usr_password,usr_id,usr_valid,usr_locked
              from {$GLOBALS['T_USER']}
              where usr_username='$login'"
    Saleté de touchpad qui veut pas se désactiver sous linux
    Je cherche et je te dis.

    Bon j'ai lancé un grep sur "login" pour essayer de trouver réponse à ta question, mais c'est long (mine de rien y'en a un sacré paquet de fichiers en tout).

    Il serait interresant de savoir à quel niveau ça échoue
    Effectivement, as-tu une idée de la manière dont je devrais procéder pour essayer de le savoir ?

    Bon je ne suis pas trop surpris, le terme "login" apparait dans énormément de fichiers malheureusement. A commencer par le fichier login.php qui est le 1er que j'ai mis dans le post. Ensuite il y a énormément de mention à ce terme dans le virtualhost backoffice.application.net dans un fichier nommé bo_common.php que voici :
    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
    <?
     
    function getBoUser()
    {
    	if (DEV_MODE==1)
    		$login="Keys";
    	else
    		$login=$_SERVER['PHP_AUTH_USER'];
     
     	if (!$login)
        {
        	applog(array(
        		"app" => "backoffice",
        		"module" => "login",
        		"submodule" => "index.php",
        		"logname" => "empty_user"),true);
        	exit();
        }
     
     
     
        $query="select * from {$GLOBALS['T_BO_USER']} where busr_login='$login'";
        $result=mysql_query($query) or die("Error: impossible d'effectuer la requete: $query : ".mysql_error());
        $rows = mysql_fetch_array( $result, MYSQL_ASSOC );
     
        if (!$rows)
        {
        	applog(array(
        		"app" => "backoffice",
        		"module" => "login",
        		"submodule" => "index.php",
        		"logname" => "unknown_user",
        		"arg1" => $login ),true);
        	exit();
        }
     
        $busr_id=$rows['busr_id'];
     
        if (!$busr_id)
        {
        	applog(array(
        		"app" => "backoffice",
        		"module" => "login",
        		"submodule" => "empty_busr_id",
        		"arg1" => $login ),true);
        	exit();
        }
     
        return $rows;
    }
     
    function echoComboxSql($table,$id_col,$value_col,$default_id)
    {
    	$query="select $id_col,$value_col from $table order by $value_col";
    	$result=mysql_query($query) or die ("Query failed: $query\n".mysql_error());
    	$array=array();
     
    	while($rows = mysql_fetch_array( $result, MYSQL_ASSOC ))
    		$array[$rows[$id_col]]=translate("french",$rows[$value_col]);
     
    	echoCombox($id_col,$default_id,$array);
    }
     
    function echoCombox($id_name,$default,$values)
    {
    	echo "<select name='$id_name'>";
    	foreach ($values as $id => $name)
    	{
    		echo "<option value='$id'";
     
    		if ($default==$id)
    			echo " selected='selected'";
     
    		echo ">$name</option>";
    	}
    	echo "</select>";
    }
     
    function echoHeader($title,$busr_name,$script="")
    {
     		echo "
    <html>
    <head>
    	<title>$title</title>
    	<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'></head>
    $script
    <body>
    <p align=center><strong><font size='+2'>$title</font></strong></p><br><br>
    <p>Compte backoffice: <strong>$busr_name</strong><br><br>
    En cas de problème: <a href='mailto:tho@application.net'>tho@application.net</a><br>\n";
    }
     
    function echoBottom()
    {
       echo "</body>
    	</html>";
    }
     
    function echoSimpleMessage($title,$busr_name,$msg)
    {
    	echoHeader($title,$busr_name);
    	echo "<p><strong>$msg</strong></p><br><br>\n";
    	echo "<a href='index.php'>Retour au back office</a>";
    	echoBottom();
    	exit();
    }
     
    ?>
    Je ne sais pas si ça aide.

  14. #14
    Invité
    Invité(e)
    Par défaut
    Sinon,

    tu peux modifier le code de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if (mysql_num_rows($res)==0)
            failed();
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     if (mysql_num_rows($res)==0){
    //        failed();
     
    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
     echo "<username_auth_failed/>\n";
     exit();
    }
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if ($db_password!=$password)
      failed();
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     if ($db_password!=$password){
      //failed();
    echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
     echo "<password_auth_failed/>\n";
     exit();
    }
    Ainsi on saura déjà si c'est le username ou le password qui pose problème.

  15. #15
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Yes cool j'essaie ça et te dis ce que ça donne.
    J'ai édité mon précédent message à l'instant avec des infos.

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Titooun Voir le message
    Yes cool j'essaie ça et te dis ce que ça donne.
    J'ai édité mon précédent message à l'instant avec des infos.

    Tu as dit que tu avasi une faute de frappe donc si c'est $login qui est dans le query, cette variable est bien initialisée directement dans le bloc juste au dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if (DEV_MODE && isset($_SESSION['T_USER']))
    	{
    		$login=$_SESSION['T_USER'];
    		$password=$_SESSION['T_PASS'];
    	}
    	else
    	{
    		$login=$_SERVER['PHP_AUTH_USER'];
    		$password=$_SERVER['PHP_AUTH_PW'];
    	}

  17. #17
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    Chui un boulet
    Enfin, c'est HP qui font chier avec des touchpads incompatibles !



    Bravo l'artiste !

    Ça bloque dès l'username :
    "username auth failed"

    Ca semble confirmer mes soupçons qu'on arrivait même pas au password vu que arg2=NULL dans la conversation sniffée... par contre je suis bien trop mauvais pour avoir le moindre indice de la raison de ceci...

    Penses-tu que cela puisse être un problème d'encodage ?

  18. #18
    Invité
    Invité(e)
    Par défaut
    Okis,

    Est-ce que le username existe bien dans la base de données?

    Pourrais-tu ajouter le query et fournir le résultat du message

    remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "<username_auth_failed/>\n";
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "<username_auth_failed: ".$query."/>\n";

  19. #19
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 26
    Points : 2
    Points
    2
    Par défaut
    "?>.<username_auth_fai led: select usr_ password,usr_id, usr_valid,usr_lo cked. from base1.user.where u sr_username=''/> .

    Interclassement de cette base UTF-8-general-ci , type MyISAM, mais il est possible que je l'ai trafiquée fut un temps, penses-tu qu'il puisse être judicieux de la réimporter pour voir ? Ou de mettre un autre interclassement dont je pense me souvenir ?

  20. #20
    Invité
    Invité(e)
    Par défaut
    mmh pas de tout de suite.

    Je vois dans le query qu'il n'a même pas récupéré la valeur de la fameuse variable $login

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     select usr_ password,usr_id, usr_valid,usr_lo cked. from base1.user.where u sr_username=''/>

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 13
    Dernier message: 26/07/2010, 08h59
  2. Problème avec Blast sur serveur Apache local
    Par jobim08 dans le forum Apache
    Réponses: 6
    Dernier message: 20/02/2009, 10h19
  3. Config de dossier partage sur serveur Apache
    Par totonono dans le forum Apache
    Réponses: 8
    Dernier message: 25/07/2006, 13h00
  4. scripts cgi sur serveur apache
    Par jejerome dans le forum Apache
    Réponses: 1
    Dernier message: 26/02/2006, 18h10
  5. Sécurité sur serveur apache
    Par Beaunico dans le forum Apache
    Réponses: 8
    Dernier message: 13/04/2004, 07h03

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