<?php
// Cloudflare API isteği yapmak için bir yardımcı fonksiyon
function cloudflare_api_istegi($url, $yontem = 'GET', $veri = null) {
// API anahtarınızı ve diğer bilgilerinizi buraya girin
$apiAnahtari = 'CLOUDFLARE_API_ANAHTARINIZ';
$email = 'CLOUDFLARE_HESAP_EMAILINIZ';
$zoneId = 'CLOUDFLARE_ZONE_ID';
// API isteği için gerekli başlıklar
$basliklar = [
"X-Auth-Email: $email",
"X-Auth-Key: $apiAnahtari",
"Content-Type: application/json"
];
// cURL ile API isteği gönderiyoruz
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $yontem); // GET, POST, PATCH, vb.
curl_setopt($curl, CURLOPT_HTTPHEADER, $basliklar);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Eğer veri varsa, bunu JSON formatında gönderiyoruz
if ($veri) {
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($veri));
}
$cevap = curl_exec($curl);
$httpKodu = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
// API cevabını ve HTTP durum kodunu döndürüyoruz
return [
'cevap' => json_decode($cevap, true),
'httpKodu' => $httpKodu
];
}
// Under Attack Mode'u aktif/deaktif etmek için bir fonksiyon
function under_attack_modunu_ayarla($aktifMi) {
global $zoneId;
// Cloudflare Security Level ayarını değiştiriyoruz
$url = "https://api.cloudflare.com/client/v4/zones/$zoneId/settings/security_level";
$veri = [
'value' => $aktifMi ? 'under_attack' : 'medium' // Aktifse "under_attack", değilse "medium"
];
return cloudflare_api_istegi($url, 'PATCH', $veri);
}
// Belirli bir firewall kuralını aktif/deaktif etmek için bir fonksiyon
function firewall_kuralini_ayarla($kuralId, $aktifMi) {
global $zoneId;
// Firewall Rule ayarını değiştiriyoruz
$url = "https://api.cloudflare.com/client/v4/zones/$zoneId/firewall/rules/$kuralId";
$veri = [
'paused' => !$aktifMi // Aktifse false, değilse true
];
return cloudflare_api_istegi($url, 'PUT', $veri);
}
// Kullanıcıdan gelen talebe göre işlemleri gerçekleştiriyoruz
$underAttackAktifMi = true; // Under Attack Mode aktif mi?
$firewallKuralId = 'FIREWALL_KURAL_ID'; // Değiştirmek istediğiniz firewall kuralının ID'si
// Under Attack Mode'u ayarla
$underAttackSonuc = under_attack_modunu_ayarla($underAttackAktifMi);
if ($underAttackSonuc['httpKodu'] === 200) {
echo "Under Attack Mode başarıyla " . ($underAttackAktifMi ? "aktif" : "deaktif") . " edildi.\n";
} else {
echo "Under Attack Mode ayarlanırken hata oluştu.\n";
}
// Firewall kuralını ayarla
$firewallSonuc = firewall_kuralini_ayarla($firewallKuralId, $underAttackAktifMi);
if ($firewallSonuc['httpKodu'] === 200) {
echo "Firewall kuralı başarıyla " . ($underAttackAktifMi ? "aktif" : "deaktif") . " edildi.\n";
} else {
echo "Firewall kuralı ayarlanırken hata oluştu.\n";
}