Détecter si un site web a été construit avec Laravel

Il y a t-il un moyen de détecté si tel ou tel site à été réaliser avec le Framework Laravel ?

:) Laravel, par défaut, utilise bien une signature particulière dans … le nom de cookie de la session. Il suffit donc d’aller sur le site web et de lire les noms des cookies générées; Si l’on trouve « laravel_session » alors c’est gagné.
Le faire avec un navigateur est quelque peu fastidieux, pas grave, nous avons la bibliothèque curl fournie avec php.

Il nous faut au départ un formulaire :

<input name="dns" placeholder="nom de domaine">

Dans mon contrôleur, j’ai une méthode générale de vérification :

private function isSiteLaravel($url,$cookies_file)
{
		file_put_contents($cookies_file,'');
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
		curl_setopt($ch, CURLOPT_NOBODY, true); 
		curl_setopt($ch, CURLOPT_COOKIESESSION, true);
		curl_setopt($ch, CURLOPT_COOKIEJAR, $cookies_file);
		try {
			curl_exec($ch);
			curl_close($ch); 
		} catch (Exception $e) {
			return false;
		}
		$cookies=file_get_contents($cookies_file);
		unlink($cookies_file);
		return strpos($cookies,'laravel_session');
}

A la réception du formulaire, je traite,vérifie l’url du site web puis utilise ma méthode isSiteLaravel :

public function postIslaravel()
{
	$url='http://'.trim(Input::get('dns'));
        //Validator::make( array('site'=>$url), array('site' => 'url') );
	//if ($validator->fails()) { throw new Exception('url invalide'); } 

	$cookies_file = storage_path().'/cookies.txt';
	$laravel=$this->isSiteLaravel($url,$cookies_file);

	$msg= ($laravel) ? array('error', 'site non laravel') : array('success', 'site web Laravel');
	return Redirect::route('formulaire')->with($msg[0],$msg[1]);
}

 

Share Button

Vous devriez aimer...