Code : Tout sélectionner
<?php
// loune 25/3/2006, updated 22/08/2009
// For more information see:
// http://siphon9.net/loune/2007/10/simple-lightweight-ntlm-in-php/
//
// This script is obsolete, you should see
// http://siphon9.net/loune/2009/09/ntlm-authentication-in-php-now-with-ntlmv2-hash-checking/
//
// NTLM specs http://davenport.sourceforge.net/ntlm.html
$headers = apache_request_headers();
if (!isset($headers['Authorization'])){
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: NTLM');
exit;
}
$auth = $headers['Authorization'];
if (substr($auth,0,5) == 'NTLM ') {
$msg = base64_decode(substr($auth, 5));
if (substr($msg, 0, 8) != "NTLMSSP\x00")
die('error header not recognised');
if ($msg[8] == "\x01") {
$msg2 = "NTLMSSP\x00\x02\x00\x00\x00".
"\x00\x00\x00\x00". // target name len/alloc
"\x00\x00\x00\x00". // target name offset
"\x01\x02\x81\x00". // flags
"\x00\x00\x00\x00\x00\x00\x00\x00". // challenge
"\x00\x00\x00\x00\x00\x00\x00\x00". // context
"\x00\x00\x00\x00\x00\x00\x00\x00"; // target info len/alloc/offset
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: NTLM '.trim(base64_encode($msg2)));
exit;
}
else if ($msg[8] == "\x03") {
function get_msg_str($msg, $start, $unicode = true) {
$len = (ord($msg[$start+1]) * 256) + ord($msg[$start]);
$off = (ord($msg[$start+5]) * 256) + ord($msg[$start+4]);
if ($unicode)
return str_replace("\0", '', substr($msg, $off, $len));
else
return substr($msg, $off, $len);
}
$user = get_msg_str($msg, 36);
$domain = get_msg_str($msg, 28);
$workstation = get_msg_str($msg, 44);
print "You are $user from $domain/$workstation";
}
}
?>
Code : Tout sélectionner
include('ntlm.php');
function get_ntlm_user_hash($user) {
$userdb = array('loune'=>'test', 'you'=>'gg', 'a'=> 'a');
if (!isset($userdb[strtolower($user)]))
return false;
return mhash(MHASH_MD4, ntlm_utf8_to_utf16le($userdb[strtolower($user)]));
}
session_start();
$auth = ntlm_prompt("testwebsite", "testdomain", "mycomputer", "testdomain.local", "mycomputer.local", "get_ntlm_user_hash");
if ($auth['authenticated']) {
print "You are authenticated as $auth[username] from $auth[domain]/$auth[workstation]";
}Code : Tout sélectionner
header('WWW-Authenticate: Basic realm="this realm"');
header("HTTP/1.0 401 Unauthorized");
session_start();
$user = $_SERVER['PHP_AUTH_USER'];
echo $user;Code : Tout sélectionner
$_SERVER['PHP_AUTH_USER']Code : Tout sélectionner
<?php
session_start();
include('Connexion/connexion.php');
$_SESSION['ERREUR'] = "";
//verification session
if (isset($_SESSION['id_personne'])) {
$id_personne = $_COOKIE['id_personne']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
setcookie('id_personne', $id_personne, time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $id_personne;
header('Location: accueil.php'); // redirige vers l'accueil
}
//verification cookie
if (isset($_COOKIE['id_personne']) || !empty($_COOKIE['id_personne'])) {
$id_personne = $_COOKIE['id_personne']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
setcookie('id_personne', $id_personne, time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $id_personne;
header('Location: accueil.php'); // redirige vers l'accueil
}
//verification formulaire login
if ((!empty($_POST['login']) && !empty($_POST['mdp']))) { // Test si les champs sont plein
$login = $_POST['login']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
$mdp = sha1($_POST['mdp']);
// Vérification des identifiants
$req = $bdd->prepare('SELECT id_personne FROM personne WHERE login = :login AND mdp_personne = :mdp');
$req->execute(array(
'login' => $login,
'mdp' => $mdp));
$resultat = $req->fetch(PDO::FETCH_ASSOC);
if (!$resultat)
{
$_SESSION['ERREUR'] = "Login et/ou mot de passe incorrect"; // Message d'erreur
}
else
{
setcookie('id_personne', $resultat['id_personne'], time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $resultat['id_personne'];
header('Location: accueil.php'); // redirige vers l'accueil
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="css/formulaire.css" >
<link rel="stylesheet" href="css/general.css" >
</head>
<script src="js/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<body>
<body class="couleur3">
<!-- header -->
<?php
if(!empty($_SESSION['ERREUR']))
{
echo ' <div class="alert alert-warning message" style="font-size:20px;">
<a href="#" class="close" data-dismiss="alert">×</a>
'.$_SESSION['ERREUR'].'
</div>';
session_destroy();
}
?>
<form id="form_connexion" class="form-login" method='post' action="#" >
<fieldset class="col-md-3 col-md-offset-4 login">
<form action="#" id="info" method="post">
<div class="form-group">
<label for="login-text" class="form-control-label">login:</label>
<input type="text" class="form-control" name="login" id="login" required>
</div>
<div class="form-group">
<label for="mdp-name" class="form-control-label">mot de passe:</label>
<input type="password" class="form-control" name="mdp" id="mdp" required>
</div>
<button type="submit" name="submit" class="btn btn-success col-md-offset-2 button-log">Connexion</button>
</form>
</fieldset>
</body>
</body>
</html>
Code : Tout sélectionner
<?php
session_start();
include('Connexion/connexion.php');
$_SESSION['ERREUR'] = "";
//verification cookie
if (!empty($_COOKIE['id_personne'])) {
$id_personne = $_COOKIE['id_personne']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
setcookie('id_personne', $id_personne, time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $id_personne;
header('Location: accueil.php'); // redirige vers l'accueil
}
else if ((!empty($_POST['login']) && !empty($_POST['mdp'])))
{
$login = $_POST['login']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
$mdp = sha1($_POST['mdp']);
// Vérification des identifiants
$req = $bdd->prepare('SELECT id_personne FROM personne WHERE login = :login AND mdp_personne = :mdp');
$req->execute(array(
'login' => $login,
'mdp' => $mdp));
$resultat = $req->fetch(PDO::FETCH_ASSOC);
if (!$resultat)
{
$_SESSION['ERREUR'] = "Login et/ou mot de passe incorrect"; // Message d'erreur
}
else
{
setcookie('id_personne', $resultat['id_personne'], time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $resultat['id_personne'];
header('Location: accueil.php'); // redirige vers l'accueil
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="css/formulaire.css" >
<link rel="stylesheet" href="css/general.css" >
</head>
<script src="js/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<body>
<body class="couleur3">
<!-- header -->
<?php
if(!empty($_SESSION['ERREUR']))
{
echo ' <div class="alert alert-warning message" style="font-size:20px;">
<a href="#" class="close" data-dismiss="alert">×</a>
'.$_SESSION['ERREUR'].'
</div>';
session_destroy();
}
?>
<form id="form_connexion" class="form-login" method='post' action="#" >
<fieldset class="col-md-3 col-md-offset-4 login">
<form action="#" id="info" method="post">
<div class="form-group">
<label for="login-text" class="form-control-label">login:</label>
<input type="text" class="form-control" name="login" id="login" required>
</div>
<div class="form-group">
<label for="mdp-name" class="form-control-label">mot de passe:</label>
<input type="password" class="form-control" name="mdp" id="mdp" required>
</div>
<button type="submit" id="submit" name="submit" class="btn btn-success col-md-offset-2 button-log">Connexion</button>
</form>
</fieldset>
</body>
</body>
</html>
Code : Tout sélectionner
$mdp = sha1($_POST['mdp']);
Code : Tout sélectionner
<?php
session_start();
include('Connexion/connexion.php');
$_SESSION['ERREUR'] = "";
//verification cookie
if(!empty($_SERVER['REMOTE_USER']))
{
include_once('Connexion/ldap_connexion.php');
session_start();
$ldapConn = ldap_connect($ldapServer ) or $this->msg = "ERROR CONNECT LDAP";
$userName = explode("\\", $_SERVER['REMOTE_USER']);
$query = "sAMAccountName=".$userName[1];
ldap_set_option($ldapConn,LDAP_OPT_PROTOCOL_VERSION,3);
ldap_set_option($ldapConn,LDAP_OPT_REFERRALS,0);
$ldapBind = ldap_bind($ldapConn,$rdn,$mdp);
$ldapResult = ldap_search($ldapConn,$baseDN,$query);
$info = ldap_get_entries($ldapConn,$ldapResult);
$currentUserInformation = array();
for ($i=0; $i < $info ["count"]; $i++)
{
$mail = $info[$i]["mail"][0];
}
ldap_unbind($ldapConn);
// Vérification des identifiants
$req = $bdd->prepare('SELECT id_personne FROM personne WHERE mail = :mail');
$req->execute(array(
'mail' => $mail));
$resultat = $req->fetch(PDO::FETCH_ASSOC);
if ($resultat)
{
setcookie('id_personne', $resultat['id_personne'], time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $resultat['id_personne'];
header('Location: accueil.php'); // redirige vers l'accueil
}
}
else if (!empty($_COOKIE['id_personne'])) {
$id_personne = $_COOKIE['id_personne']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
setcookie('id_personne', $id_personne, time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $id_personne;
header('Location: accueil.php'); // redirige vers l'accueil
}
else if ((!empty($_POST['login']) && !empty($_POST['mdp'])))
{
$login = $_POST['login']; // Remplace les simple quote par des double quote pour éviter les problemes d'injection sql
$mdp = sha1($_POST['mdp']);
// Vérification des identifiants
$req = $bdd->prepare('SELECT id_personne FROM personne WHERE login = :login AND mdp_personne = :mdp');
$req->execute(array(
'login' => $login,
'mdp' => $mdp));
$resultat = $req->fetch(PDO::FETCH_ASSOC);
if (!$resultat)
{
$_SESSION['ERREUR'] = "Login et/ou mot de passe incorrect"; // Message d'erreur
}
else
{
setcookie('id_personne', $resultat['id_personne'], time() + 365*24*3600, "/");
$_SESSION['id_personne'] = $resultat['id_personne'];
header('Location: accueil.php'); // redirige vers l'accueil
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" >
<link rel="stylesheet" href="css/formulaire.css" >
<link rel="stylesheet" href="css/general.css" >
</head>
<script src="js/jquery.min.js"></script>
<script src="bootstrap/js/bootstrap.min.js"></script>
<body>
<body class="couleur3">
<!-- header -->
<?php
if(!empty($_SESSION['ERREUR']))
{
echo ' <div class="alert alert-warning message" style="font-size:20px;">
<a href="#" class="close" data-dismiss="alert">×</a>
'.$_SESSION['ERREUR'].'
</div>';
session_destroy();
}
?>
<form id="form_connexion" class="form-login" method='post' action="#" >
<fieldset class="col-md-3 col-md-offset-4 login">
<form action="#" id="info" method="post">
<div class="form-group">
<label for="login-text" class="form-control-label">login:</label>
<input type="text" class="form-control" name="login" id="login" required>
</div>
<div class="form-group">
<label for="mdp-name" class="form-control-label">mot de passe:</label>
<input type="password" class="form-control" name="mdp" id="mdp" required>
</div>
<button type="submit" id="submit" name="submit" class="btn btn-success col-md-offset-2 button-log">Connexion</button>
</form>
</fieldset>
</body>
</body>
</html>