Tag: wikipedia’
Authentification NTLM en PHP
- by admin
Pour le développement d’un intranet pour mon job, j’utilisais jusqu’à présent un script d’authentification NTLM afin que les utilisateurs soient automatiquement connectés sans devoir entrer ni login ni mot de passe. Jusqu’à ce que Microsoft (et mes très chers administrateurs réseaux) force l’installation d’une mise à jour de sécurité pour toutes les versions d’Internet Explorer ce qui rendis mon code totalement inopérant (IE doit représenter 99% des employés… il y a même des versions 6 à mon grand désespoir…)
Après quelques recherches, j’ai (enfin) trouvé un bout de code qui semble très bien fonctionné, qui retourne le nom de l’utilisateur, le domaine sur lequel il est, ainsi que le nom de sa machine:
[php]
$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". // target name len/alloc
"\x00\x00\x00\x00". // target name offset
"\x01\x02\x81\x01". // flags
"\x00\x00\x00\x00\x00\x00\x00\x00". // challenge
"\x00\x00\x00\x00\x00\x00\x00\x00". // context
"\x00\x00\x00\x00\x30\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("", », 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";
// result: You are maiis from DOMAIN/MYPC001
}
}
[/php]
Cette méthode est compatible avec Internet Explorer, Firefox et Opera.
Spécifications du NTLM (en anglais)
Mettez tout Wikipedia sur une clé USB
- by admin

Les créateurs de Kiwix.org lancent aujourd’hui une solution qui permet de télécharger l’intégralité de Wikipedia.fr sur votre ordinateur (ou autre disc dur) et de le consulter sans avoir à être connecté sur le web. Il s’agit d’un logiciel qui télécharge et permet de surfer sur l’encyclopédie en ligne. Cela représente-il un intérêt? Oui si vous êtes souvent en vadrouille, ou dans une bibliothèque sans connection. Martin, l’un des créateurs précisent que cela aura également un grand intérêt dans les pays en voie de développement où la connection est plus que limitée.
D’autres langues sont aussi disponibles. J’ai posé la question aux créateurs: comment sont gérées les mises à jour. Pour le moment pas de manière optimale. Un nouveau fichier est compilé et disponible tous les mois. Mais bientôt une meilleure solution sera proposée. Pour information Wikipedia.fr passé à la moulinette de Kiwix ca pèse 1.4G. Ca tient sur une clé USB sans problème donc. Le logiciel est disponible pour Windows mac et Linux. Bon surf