session en php3 ?

session en php3 ? - Programmation

Marsh Posté le 22-01-2001 à 15:07:17    

peut-on faire des sessions en php3 ?
sinon, comment faire pour garder cachés un mot de passe et un login dans différentes pages ?

Reply

Marsh Posté le 22-01-2001 à 15:07:17   

Reply

Marsh Posté le 22-01-2001 à 15:22:34    

Sessions> pas directement, mais sur www.phpinfo.net , ya une bibliothèque qui permet de gérer cela simplement.
 
Login et mot de passes> En cookies, dans la sessions ci-dessus, ?
la question est : caché pour qui ?

 


--Message édité par kadreg--

Reply

Marsh Posté le 22-01-2001 à 15:25:29    

Caché pour les utilisateurs du site.

Reply

Marsh Posté le 22-01-2001 à 15:26:45    

tu peux préciser stp ...

Reply

Marsh Posté le 22-01-2001 à 15:29:21    

Tu peux préciser?
termostat 3, c'est évident!!!
 
z'êtes pas bien fort!!!!

Reply

Marsh Posté le 22-01-2001 à 15:43:49    

shinji> position grill, plutot, j'aime bien quand ça croustille
 
nonolemono> Donc, tu voudrais cacher aux utilisateurs du site les logins et mots de passes qu'ils ont tapé pour ouvrir la session, c'est ça ? Dans ce cas, avec la bibliothèque de gestion de session, tu doit pouvoir coller ça dans les paramètres de la session (en tout cas, c'est comme ça que je faisait avec weblogic).
 
Sinon, les cookies, ça marche pô mal.

Reply

Marsh Posté le 22-01-2001 à 16:04:24    

Manuel PHPss
 
 
Chapitre 17. Authentification HTTP avec PHP
Les fonctions d'authentification HTTP de PHP ne sont disponibles que si PHP est exécuté comme module Apache, et non pas sous la forme d'un CGI. Sous cette forme, il est possible d'utiliser la fonction header() pour demander une authentification ("Authentication Required" ) au client, générant ainsi l'apparition d'une fenêtre de demande d'utilisateur et de mot de passe. Une fois que les champs ont été remplis, l'URL sera de nouveau appelée, avec les variables $PHP_AUTH_USER, $PHP_AUTH_PW et $PHP_AUTH_TYPE contenant respectivement le nom d'utilisateur, le mot de passe et le type d'authentification. Actuellement, seule l'authentification simple ("Basic" ) est supportée. Reportez vous à la fonction header() pour plus d'informations.ss
 
Voici un exemple de script qui force l'authentification du client pour accéder à une page : Exemple 17-1. Exemple d'authentication HTTP
 
<?php
ssif(!isset($PHP_AUTH_USER)) {
ssssHeader("WWW-Authenticate: Basic realm="My Realm"" );
ssssHeader("HTTP/1.0 401 Unauthorized" );
ssssecho "Texte à envoyer si le client appuie sur le bouton d'annulation
";
ssssexit;
ss} else {
ssssecho "Bonjour $PHP_AUTH_USER.<P>"
ssssecho "Vous avez entré le mot de passe $PHP_AUTH_PW.<P>"
ss}
?>
ssss
ss
ss
 
 
Au lieu d'afficher simplement les variables globales $PHP_AUTH_USER et $PHP_AUTH_PW, vous préférerez sÛrement vérifier la validité du nom d'utilisateur et du mot de passe. Par exemple, en envoyant ces informations à une base de données, ou en recherchant dans un fichier dbm.ss
 
Méfiez vous des navigateurs buggés, tels que Internet Explorer. Ils semblent très suceptibles concernant l'ordre des entêtes. Envoyer l'entête d'authentification (WWW-Authenticate) avant le code de HTTP/1.0 401 semble lui convenir jusqu'à présent.ss
 
Pour éviter que quelqu'un écrive un script qui révèle les mots de passe d'une page, à la quelle on a accédé par une authentification traditionnelle, les variables globales PHP_AUTH ne seront pas assignées si l'authentification externe a été activée pour cette page. Dans ce cas, la variable $REMOTE_USER peut être utilisée pour identifier l'utilisateur à l'extérieur.ss
 
Notez cependant que les manipulations ci-dessus n'empêchent pas quiconque qui possède une page non authentifiée de voler les mots de passes des pages protégées, sur le même serveur.ss
 
Netscape et Internet Explorer effaceront le cache d'authentification client si ils recoivent une réponse 401. Cela permet de déconnecter un utilisateur, pour le forcer à ré-entrer son nom de compte et son mot de passe. Certains programmeurs l'utilisent pour donner un délai d'éxpiration, ou alors, fournissent un bouton de déconnexion.ss
 
Exemple 17-2. Authentification HTTP avec nom d'utilisateur/mot de passe forcéss
 
<?php
ssfunctionssauthenticate() {
ssssHeader( "WWW-authenticate:ssbasicssrealm='TestssAuthenticationssSystem'" );
ssssHeader( "HTTP/1.0ss401ssUnauthorized" );
ssssechoss"Vous devez entrer un nom d'utilisateur valide et un mot de passe correct pour accéder à cette ressource
";
ssssexit;
ss}
ssif(!isset($PHP_AUTH_USER)ss||ss($SeenBefore ==ss1ss&&ss!strcmp($OldAuth,ss$PHP_AUTH_USER))ss)ss{
ssssauthenticate();
ss}
sselsess{
ssssechoss"Bienvenuess$PHP_AUTH_USER<BR>";
ssssechoss"Old:ss$OldAuth";
ssssechoss"<FORMssACTION="$PHP_SELF"ssMETHOD=POST>
";
ssssechoss"<INPUTssTYPE=HIDDENssNAME="SeenBefore"ssVALUE="1">
";
ssssechoss"<INPUTssTYPE=HIDDENssNAME="OldAuth"ssVALUE="$PHP_AUTH_USER">
";
ssssechoss"<INPUTssTYPE=SubmitssVALUE="RessAuthenticate">
"
ssssechoss"</FORM>
";
}
?>
ssss
ss
ss
 
Ce comportement n'est pas nécessaire par le standard d'authentification HTTP Basic. Les tests avec Lynx ont montré qu'il n'affectait pas les informations de session lors de la réception d'un message de type 401, ce qui fait que passer ces informations entre le serveur et le client, et donnera l'accès à la ressource.ss
 
Notez aussi que tout ceci ne fonctionne pas sous Microsoft IIS et que les limitations de PHP en version CGI sont dues aux limitations de IIS.

Reply

Marsh Posté le 22-01-2001 à 16:39:25    

Sinon tu fais tout a la main avec des cookies mais on l'a déja dit je crois.

Reply

Marsh Posté le 22-01-2001 à 17:15:56    

Autre solution. PHP3 + une base de données (ou un fichier). Dans la BD (ou le fichier) tu stockes les informations des cessions (n° de cession, nom d'utilisateur et IP + d'autres infos que tu pense nécessaire). L'IP sert à éviter que quelqu'un d'autre prenne la place d'un utilisateur.
De cette manière, tu cré une cession si le couple mot_de_passe/nom_d'utilisateur est bon et ensuite, ton utilisateur ne fait plus que ce balader avec son numéro de cession.

Reply

Marsh Posté le 22-01-2001 à 18:31:58    

tient bah c'est exactement ce que je fais pour mon site sauf que c'est pas l'ip qui me sert d'identifiant.

Reply

Marsh Posté le 22-01-2001 à 18:31:58   

Reply

Marsh Posté le 23-01-2001 à 11:49:58    

omega2 a écrit a écrit :

Autre solution. PHP3 + une base de données (ou un fichier). Dans la BD (ou le fichier) tu stockes les informations des cessions (n° de cession, nom d'utilisateur et IP + d'autres infos que tu pense nécessaire). L'IP sert à éviter que quelqu'un d'autre prenne la place d'un utilisateur.
De cette manière, tu cré une cession si le couple mot_de_passe/nom_d'utilisateur est bon et ensuite, ton utilisateur ne fait plus que ce balader avec son numéro de cession.

 




en plus de l'IP, tu peut rajouter des trucs genre le navigateur exact (os + version + ...) parceque deux pc derième une gateway ont l'ip de la gateway à tes yeux!

 

Reply

Marsh Posté le 23-01-2001 à 12:20:37    

Seul un numero de cession unique généré par le serveur peut donner quelque chose de réellement unique et donc utilisable pour identifier un utilisateur tout au long d'une session. Parceque sinon, c'est comme ça que je me suis retrouvé administrateur sur un site :)

Reply

Marsh Posté le 23-01-2001 à 13:04:01    

kadreg a écrit a écrit :

Seul un numero de cession unique généré par le serveur peut donner quelque chose de réellement unique et donc utilisable pour identifier un utilisateur tout au long d'une session. Parceque sinon, c'est comme ça que je me suis retrouvé administrateur sur un site :)

 





Oui mais si tu les créé de manière incrémentale et que tu n'utilises pas d'autre infos par sécurité, n'importe qui peu sauter d'un compte à l'autre rien qu'en changeant son numéros de session.

Reply

Marsh Posté le 23-01-2001 à 13:06:43    

PinG a écrit a écrit :

en plus de l'IP, tu peut rajouter des trucs genre le navigateur exact (os + version + ...) parceque deux pc derième une gateway ont l'ip de la gateway à tes yeux!
 
 

 





Mais en général, derrière un "gateway" d'entreprise, on trouve plusieurs ordi avec le même navigateur (os, navigateur+ version du navigateur).

Reply

Marsh Posté le 23-01-2001 à 14:21:27    

Roswell_ a écrit a écrit :

tient bah c'est exactement ce que je fais pour mon site sauf que c'est pas l'ip qui me sert d'identifiant.

 





Si c'est pas "TOP SECRET", t'utilise quoi comme identifiant?

Reply

Marsh Posté le 24-01-2001 à 01:06:21    

j'ai pas tous lu, mais en utilisant un formulaire avec une method='post', l'utilisateur ne le vois pas (sauf s'il regarde la source) et c très simple à utiliser par rapport aux cookies car si l'internaute refuse ton cookie ....... t mort! :)

 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed