e-sup UNR PACA

Vous êtes ici -> CasPhp
Home :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-54-82-10-219.compute-1.amazonaws.com

Expérience de Cassification Php et Java ?

Avignon : GuillaumePassaglia, FlorianBousquet

L'université d'Avignon a tenté l'expérience de la cassification une seule fois. Le logiciel cassifié est une application "maison" permettant de passer un QCM en ligne pour le C2I.
Pour se faire, nous avons utilisé la classe PHPcas (disponible ICI) qui permet de cassifier très simplement une application PHP. Seule la partie d'administration a été cassifié mais pour la partie client, le principe reste le même.

Notre système de login était parfaitement conventionnel, nous vérifions dans une base de données si un uilisateur est enregistré en temps qu'administrateur et quels droits il a sur l'application. Il a fallut ajouter une étape intermédiaire, à savoir la vérification par cas.
Voici concrètement ce que cela donne :


Sans phpCAS


comparaison du couple login/pass en base de donné pour obtenir le niveau de droit de l'utilisateur
$req="SELECT lvl FROM c2i_admin WHERE login='$_POST['login']' AND pass='$_POST['password']'";
$lvl =& $db->query($req);
testdb($lvl);
si la base de données retourne un level, l'utilisateur peut être authentifié et sa session est commencée
if ($lvl->numRows()!=0)
{
session_start();
$_SESSION['log']='$_POST['login'];
$_SESSION['lvl']=$lvl;
on redirige l'utilisateur vers la page principale de l'admin
header("Location: index.php");
}



Avec PHPcas

initialize phpCAS
phpCAS::client(CAS_VERSION_2_0,'cas01c.univ-avignon.fr',8443,'cas');
force CAS authentication
phpCAS::forceAuthentication();
Si cas a reconnu l'utilisateur comme étant "valide" (c'est à dire enregistré dans le LDAP)
if(phpCAS::getUser()!=null)
{
on récupère son login
$log=phpCAS::getUser();
session_start();
on prend les droit de cet utilisateur dans la base locale
$req="SELECT lvl FROM c2i_admin WHERE login='$log'";
$lvl =& $db->getOne($req);
testdb($lvl);
$_SESSION['log']='$_POST['login'];
$_SESSION['lvl']=$lvl;
on redirige l'utilisateur vers la page principale de l'admin
header("Location: index.php");
}

Suite à l'authentification CAS, c'est la session logicielle qui prend le relai. Nous vérifions au début de chaque script que la variable $_SESSION['log'] est bien renseignée, si ce n'est pas le cas, l'utilisateur est renvoyé sur la page de login.


Nice :
Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]