Return to Snippet

Revision: 61749
at January 11, 2013 08:42 by DSTG_Kwan


Updated Code
// Sveučilište u Zagrebu, Fakultet organizacije i informatike u Varaždinu
// 
// Projekt iz kolegija Sigurnost informacijskih sustava 2012/2013
// 
// Tema: Primjena YubiKey-a
//
// Autori: Ivan Ković, Tomislav Gec
//
// Da bi kod radio, potrebna mu je klasa Yubikey.php koja se može naći na donjoj adresi
// URL: https://github.com/rnavarro/yubikey-php/blob/master/Yubikey.php

<?php
 
        $otp = strtolower ($_POST['otp']);
 
	// $public_id se inace uzima iz baze podataka, povezan je s jedinstvenim acccount-om
	$public_id = "ccccccbcueie";
        // korisnicki podaci se moraju uzimati iz baze podataka
        $username = "test";
        $password = "test";
 
        if($_POST['username'] == $username && $_POST['password'] == $password)
        {
                if ($public_id == substr($otp, 0, 12))
	        {
		        require_once "Yubikey.php";
 
                       // apiID i kljuc dobiju se na adresi "https://upgrade.yubico.com/getapikey/"
		       $apiID = 9920;
		       $signatureKey = "2cbj+NwyBm8YyskUy4PRIzRTZuQ=";
 
		       $token = new Yubikey($apiID, $signatureKey);
 
                       // na odgovor servera prilikom provjere ispravnosti OTP-a ceka se do 20 sekundi 
		       $token->setCurlTimeout(20);
                       // tolerancija na razliku u timestamp-u kada je kreirana lozinka i kada je predana na provjeru
		       $token->setTimestampTolerance(600);
 
 
		        if ($token->verify($otp))
		        {
			        echo "<p><font color=black font face='sans-serif' size='5pt'>OK! Prijavljeni ste!</p>";
		        }
		        else
		        {
			        echo "<p><font color=black font face='sans-serif' size='5pt'>Niste se prijavili!</p>";
		        }
 
		        echo "\n<p><font color=black font face='sans-serif' size='3pt'>Odgovor servera: ".$token->getLastResponse()."</p>\n";
	        }
	        else
	        {
		        echo "<p><font color=black font face='sans-serif' size='5pt'>To nije Vaš Yubikey!</p>\n";                
	        }
 
	        echo "<a href=http://air2012.comule.com/SIS/forma.html><font color=black font face='sans-serif' size='3pt'>Natrag</a>";
	        echo "</body>\n";
	        echo "</html>";
 
	        exit;
                }
 
        else
        {
                echo "<p><font color=black font face='sans-serif' size='5pt'>Korisni&#269;ki podaci nisu ispravni!</p>\n";
                echo "<a href=http://air2012.comule.com/SIS/forma.html><font color=black font face='sans-serif' size='3pt'>Natrag</a>";
	        echo "</body>\n";
	        echo "</html>";
 
                exit;
        }
 
?>

Revision: 61748
at January 11, 2013 07:36 by DSTG_Kwan


Initial Code
<?php
 
        $otp = strtolower ($_POST['otp']);
 
	// $public_id se inace uzima iz baze podataka, povezan je s jedinstvenim acccount-om
	$public_id = "ccccccbcueie";
        // korisnicki podaci se moraju uzimati iz baze podataka
        $username = "test";
        $password = "test";
 
        if($_POST['username'] == $username && $_POST['password'] == $password)
        {
                if ($public_id == substr($otp, 0, 12))
	        {
		        require_once "Yubikey.php";
 
                       // apiID i kljuc dobiju se na adresi "https://upgrade.yubico.com/getapikey/"
		       $apiID = 9920;
		       $signatureKey = "2cbj+NwyBm8YyskUy4PRIzRTZuQ=";
 
		       $token = new Yubikey($apiID, $signatureKey);
 
                       // na odgovor servera prilikom provjere ispravnosti OTP-a ceka se do 20 sekundi 
		       $token->setCurlTimeout(20);
                       // tolerancija na razliku u timestamp-u kada je kreirana lozinka i kada je predana na provjeru
		       $token->setTimestampTolerance(600);
 
 
		        if ($token->verify($otp))
		        {
			        echo "<p><font color=black font face='sans-serif' size='5pt'>OK! Prijavljeni ste!</p>";
		        }
		        else
		        {
			        echo "<p><font color=black font face='sans-serif' size='5pt'>Niste se prijavili!</p>";
		        }
 
		        echo "\n<p><font color=black font face='sans-serif' size='3pt'>Odgovor servera: ".$token->getLastResponse()."</p>\n";
	        }
	        else
	        {
		        echo "<p><font color=black font face='sans-serif' size='5pt'>To nije Vaš Yubikey!</p>\n";                
	        }
 
	        echo "<a href=http://air2012.comule.com/SIS/forma.html><font color=black font face='sans-serif' size='3pt'>Natrag</a>";
	        echo "</body>\n";
	        echo "</html>";
 
	        exit;
                }
 
        else
        {
                echo "<p><font color=black font face='sans-serif' size='5pt'>Korisni&#269;ki podaci nisu ispravni!</p>\n";
                echo "<a href=http://air2012.comule.com/SIS/forma.html><font color=black font face='sans-serif' size='3pt'>Natrag</a>";
	        echo "</body>\n";
	        echo "</html>";
 
                exit;
        }
 
?>

Initial URL

                                

Initial Description
Izvorni kod za web aplikaciju u kojoj smo implementirali validaciju jednokratne zaporke koju generira uređaj YubiKey.

Initial Title
SIS 2012/2013 - Primjena YubiKey-a  (Tomislav Gec, Ivan Ković)

Initial Tags
php

Initial Language
PHP