Retour

Passer à travers la protection CloudFlare

Aujourd'hui nous allons nous intéresser à la protection offerte par CloudFlare.

Ce CDN propose en effet dans son panel de services, une protection anti-DDOS permettant de soulager vos serveurs grâce à une fine vérification de chaque visiteur entrant sur votre site.

Cela permet également d'empêcher de ce fait, de scraper les informations de ce site puisqu'au lieu d'obtenir les bonnes informations contenues sur une de ses pages, vous obtiendrez à la place une page provenant de CloudFlare.

Il existe cependant plusieurs méthodes pour passer outre cette protection. Nous allons aujourd'hui nous intéresser à une library PHP permettant de faire une telle chose.

Il s'agit de "CloudFlare Bypass", disponible sur GitHub à l'adresse suivante : https://github.com/KyranRana/cloudflare-bypass

L'installation est relativement simple :

- Téléchargez la dernière release
- Déplacez le dossier "CloudflareBypass" ainsi que le fichier "autoload.php" contenu lui-même dans le dossier "/src/" dans le dossier de votre projet contenant vos librairies
- Dans le controller où vous souhaitez utiliser l'outil, ajoutez un require de l'autoload.php ainsi qu'un :

use CloudflareBypass\RequestMethod\CFCurl;

Il ne vous reste alors plus qu'à prendre exemple sur ce petit bout de code pour effectuer vos appels CURL et tenter de passer à travers la protection CloudFlare :

$curl_cf_wrapper = new CFCurl(array(
'max_retries' => 5, // How many times to try and get clearance?
'cache' => false, // Enable caching?
'cache_path' => __DIR__ . '/cache', // Where to cache cookies? (Default: system tmp directory)
'verbose' => true // Enable verbose? (Good for debugging issues - doesn't effect cURL handle)
));

// Get Example: 1
$ch = curl_init("https://www.adresseascraper.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36');
echo $curl_cf_wrapper->exec($ch); // Done! NOTE: HEAD requests not supported!
curl_close($ch);

Et voilà, si tout se passe bien, la librairie passera à travers la protection CloudFlare sans que vous ayez à faire plus d'efforts !

0 commentaires

Laisser une réponse

Vous devez vous connecter pour envoyer une réponse.