Jean Francois Ortolo
2012-01-15 15:17:12 UTC
Bonjour
C'est dans le but de modifier tout un site, pour sécuriser son mode
d'authentification de ses visiteurs authentifiés.
Désormais, la fonction certitifiant l'authentification, aurait pour
prototype : make_authen($password) , et la fonction vérifiant
l'authentification, aurait pour prototype : verif_authen()
Ces deux fonctions, serait incluses dans un script php nommé
authen.php , et ces deux fonctions, contienraient des instructions MySQL
sur une table MySQL nommée : authentification.
Ces deux fonctions, contiendraient donc chacune, la variable globale
$conn donnant la connexion en cours, à la Base de Données, et le
problème consiste à savoir, à quel endroit des scripts du site, inclure
le script authen.php contenant ces fonctions.
Il va de soi, qu'au moment où l'une de ces deux fonctions est
appelée, la connexion à la Base de Données ( alimentant la variable
$conn ) est toujours active.
Sacahnt celà, est-ce que je pourrais, inclure tout simplement ce
script authen.php, dans le script contenant les fonctions de connexion
et de déconnexion à la Base de Données, sachant que ce dernier script
est lui-même inclus dans chaque scripts du site à modifier, et
qu'effectivement, les connexions à la Base de Données, ne sont pas fait
dans ce dernier script, mais dans les scripts incluant ce dernier script ?
Par exemple, pourrais je avoir une architecture de ce type :
script connect_deconnect.php contenant les fonction connect() et
disconnect(), ainsi que les scripts inclus class_MyPDO.php et authen.php :
connect_deconnect.php
---------------------
-------------------------------------------------------
<?php
include("class_myPDO.php");
global $conn;
function connect()
{
// Instruction de connexion
// alimentant la variable
// globale $conn
}
function disconnect($conn)
{
unset($conn);
}
include("authen.php");
?>
-----------------------------------------------------------
authen.php
----------
-----------------------------------------------------------
<?php
global $conn;
function make_authen($password)
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la Base de Données
// donnée par la variable $conn,
// ces instructions assurant
// l'authentification
// du visiteur ayant présenté
// le mot de passe $password
return(true);
}
function verif_authen()
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la base de Données
// donnée par la variable $conn,
// cette fonction rend true
// si le visiteur est authentifié
// et false si non authentifié.
}
?>
-----------------------------------------------------
Maintenant, un exemple d'un script php utilisant les fonctions du
script authen.php , alors que la connexion à la Base de Données est active :
script example.php
<?php
session_start();
include("connect_deconnect.php");
global $conn;
$conn = connect();
if(!$conn)
{
// Message d'erreur
exit;
}
// On suppose, que le mot de passe $password
// associé au pseudo $pseudo , a été vérifié, donc
// on authentifie ce visiteur :
$_SESSION['pseudo'] = $pseudo;
if(!make_authen($password))
{
// Message d'erreur,
// visiteur non authentifié
unset($_SESSION['pseudo']);
disconnect($conn);
exit;
}
// Là, le visiteur est authentifié,
// Dans ce script ( mais celà peut être aussi bien dans un autre
script ),on vérifie si le visiteur est authentifié :
if(verif_authen())
{
// Traitement normal,
// le visiteur est authentifié.
}
else
{
// Traitement destiné
// à demander au visiteur
// de fournir un pseudo
// et un mot de passe valide,
// puis le traitement
// vérifie si le pseudo et le password
// sont corrects,
// puis dans ce script,
// déclenche de nouveau la fonction
// make_authen($password);
//
}
disconnect($conn);
// Suite du traitement éventuel.
exit;
?>
-------------------------------------------------
Donc, voici ma question :
A supposer, que la connexion à la Base de Données dans le(s)
script(s) appelant, précède toujours les appels aux fonctions
make_authen($password) et/ou verif_authen() , cette connexion
sera-t-elle valide à l'intérieur de ces deux fonctions, bien que ces
deux fonctions, sont déclarées avant l'instruction de connexion ( $conn
= connect(); ) ?
En effet, pour plius de rapidité, je souhaite pouvoir inclure le
script authen.php , tout bonnement dans le script connect_deconnect.php
, ce qui ne fait qu'une seule inclusion pour tous les scripts du site,
puisque le script connect_deconnect.php, est inclus partout où il y a
besoin d'une connexion MySQL.
La variable $cconn étant globale partout, cette architecture de
script est-elle valable ou non ?
Je reconnais que c'est une question très basique en php, mais
j'aimerais bien être sûr avant de commencer à faire ces modifications.
Merci beaucoup de vos réponses.
Bien amicalement.
Jean François Ortolo
C'est dans le but de modifier tout un site, pour sécuriser son mode
d'authentification de ses visiteurs authentifiés.
Désormais, la fonction certitifiant l'authentification, aurait pour
prototype : make_authen($password) , et la fonction vérifiant
l'authentification, aurait pour prototype : verif_authen()
Ces deux fonctions, serait incluses dans un script php nommé
authen.php , et ces deux fonctions, contienraient des instructions MySQL
sur une table MySQL nommée : authentification.
Ces deux fonctions, contiendraient donc chacune, la variable globale
$conn donnant la connexion en cours, à la Base de Données, et le
problème consiste à savoir, à quel endroit des scripts du site, inclure
le script authen.php contenant ces fonctions.
Il va de soi, qu'au moment où l'une de ces deux fonctions est
appelée, la connexion à la Base de Données ( alimentant la variable
$conn ) est toujours active.
Sacahnt celà, est-ce que je pourrais, inclure tout simplement ce
script authen.php, dans le script contenant les fonctions de connexion
et de déconnexion à la Base de Données, sachant que ce dernier script
est lui-même inclus dans chaque scripts du site à modifier, et
qu'effectivement, les connexions à la Base de Données, ne sont pas fait
dans ce dernier script, mais dans les scripts incluant ce dernier script ?
Par exemple, pourrais je avoir une architecture de ce type :
script connect_deconnect.php contenant les fonction connect() et
disconnect(), ainsi que les scripts inclus class_MyPDO.php et authen.php :
connect_deconnect.php
---------------------
-------------------------------------------------------
<?php
include("class_myPDO.php");
global $conn;
function connect()
{
// Instruction de connexion
// alimentant la variable
// globale $conn
}
function disconnect($conn)
{
unset($conn);
}
include("authen.php");
?>
-----------------------------------------------------------
authen.php
----------
-----------------------------------------------------------
<?php
global $conn;
function make_authen($password)
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la Base de Données
// donnée par la variable $conn,
// ces instructions assurant
// l'authentification
// du visiteur ayant présenté
// le mot de passe $password
return(true);
}
function verif_authen()
{
global $conn;
// Instructions MySQL
// utilisant la connexion
// à la base de Données
// donnée par la variable $conn,
// cette fonction rend true
// si le visiteur est authentifié
// et false si non authentifié.
}
?>
-----------------------------------------------------
Maintenant, un exemple d'un script php utilisant les fonctions du
script authen.php , alors que la connexion à la Base de Données est active :
script example.php
<?php
session_start();
include("connect_deconnect.php");
global $conn;
$conn = connect();
if(!$conn)
{
// Message d'erreur
exit;
}
// On suppose, que le mot de passe $password
// associé au pseudo $pseudo , a été vérifié, donc
// on authentifie ce visiteur :
$_SESSION['pseudo'] = $pseudo;
if(!make_authen($password))
{
// Message d'erreur,
// visiteur non authentifié
unset($_SESSION['pseudo']);
disconnect($conn);
exit;
}
// Là, le visiteur est authentifié,
// Dans ce script ( mais celà peut être aussi bien dans un autre
script ),on vérifie si le visiteur est authentifié :
if(verif_authen())
{
// Traitement normal,
// le visiteur est authentifié.
}
else
{
// Traitement destiné
// à demander au visiteur
// de fournir un pseudo
// et un mot de passe valide,
// puis le traitement
// vérifie si le pseudo et le password
// sont corrects,
// puis dans ce script,
// déclenche de nouveau la fonction
// make_authen($password);
//
}
disconnect($conn);
// Suite du traitement éventuel.
exit;
?>
-------------------------------------------------
Donc, voici ma question :
A supposer, que la connexion à la Base de Données dans le(s)
script(s) appelant, précède toujours les appels aux fonctions
make_authen($password) et/ou verif_authen() , cette connexion
sera-t-elle valide à l'intérieur de ces deux fonctions, bien que ces
deux fonctions, sont déclarées avant l'instruction de connexion ( $conn
= connect(); ) ?
En effet, pour plius de rapidité, je souhaite pouvoir inclure le
script authen.php , tout bonnement dans le script connect_deconnect.php
, ce qui ne fait qu'une seule inclusion pour tous les scripts du site,
puisque le script connect_deconnect.php, est inclus partout où il y a
besoin d'une connexion MySQL.
La variable $cconn étant globale partout, cette architecture de
script est-elle valable ou non ?
Je reconnais que c'est une question très basique en php, mais
j'aimerais bien être sûr avant de commencer à faire ces modifications.
Merci beaucoup de vos réponses.
Bien amicalement.
Jean François Ortolo