• 24-12-2024, 00:29:54
    #10
    lonescary adlı üyeden alıntı: mesajı görüntüle
    hocam kuralı pasif hale getiremiyor.
    Dönen bir hata mesajı var mı?
  • 24-12-2024, 00:31:19
    #11
    victories adlı üyeden alıntı: mesajı görüntüle
    Dönen bir hata mesajı var mı?
    Hayır verdiğiniz kodu çalıştırıyorum, aktif/pasif oldu şeklinde yazı çıkıyor fakat bir değişiklik yapmıyor
  • 24-12-2024, 00:33:11
    #12
    Kodu çalıştırınca sadece kuralı en üste taşıyor. @victories;
  • 24-12-2024, 00:38:56
    #13
    disabled değil paused kullanmamız gerekiyormuş. https://developers.cloudflare.com/fi...s/json-object/

    <?php
    
    // Cloudflare API kimlik bilgileri
    $apiKey = 'YOUR_API_KEY';
    $email = 'YOUR_EMAIL';
    $zoneId = 'YOUR_ZONE_ID';
    
    // Kuralları listeleme fonksiyonu
    function listRules($apiKey, $email, $zoneId) {
        // CURL başlat
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules");
        
        // CURL ayarları
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            "X-Auth-Email: {$email}",
            "X-Auth-Key: {$apiKey}",
            "Content-Type: application/json"
        ]);
    
        // İsteği gönder
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
        // CURL hata kontrolü
        if(curl_errno($ch)) {
            echo "CURL Hatası: " . curl_error($ch) . "\n";
            curl_close($ch);
            return;
        }
        curl_close($ch);
    
        // Yanıtı işle
        $result = json_decode($response, true);
        
        if ($httpCode == 200 && $result['success']) {
            if (empty($result['result'])) {
                echo "Hiç kural bulunamadı.\n";
                return;
            }
    
            echo "MEVCUT KURALLAR:\n";
            echo str_repeat('-', 100) . "\n";
            echo sprintf("%-32s | %-20s | %-15s | %s\n", 'KURAL ID', 'AD', 'DURUM', 'AÇIKLAMA');
            echo str_repeat('-', 100) . "\n";
    
            foreach ($result['result'] as $rule) {
                echo sprintf("%-32s | %-20s | %-15s | %s\n",
                    $rule['id'],
                    substr($rule['description'] ?? 'İsimsiz', 0, 20),
                    $rule['status'],
                    $rule['expression'] ?? 'Açıklama yok'
                );
            }
    
            echo "\nToplam " . count($result['result']) . " kural listelendi.\n";
        } else {
            echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
            print_r($result['errors'] ?? 'Bilinmeyen hata');
        }
    }
    
    // Kural aktifleştirme fonksiyonu
    function activateRule($apiKey, $email, $zoneId, $ruleId) {
        // CURL başlat
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules/{$ruleId}");
        
        // İstek verisi
        $data = json_encode(['status' => 'active']);
        
        // CURL ayarları
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            "X-Auth-Email: {$email}",
            "X-Auth-Key: {$apiKey}",
            "Content-Type: application/json"
        ]);
    
        // İsteği gönder
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
        // CURL hata kontrolü
        if(curl_errno($ch)) {
            echo "CURL Hatası: " . curl_error($ch) . "\n";
            curl_close($ch);
            return;
        }
        curl_close($ch);
    
        // Yanıtı işle
        $result = json_decode($response, true);
        
        if ($httpCode == 200 && $result['success']) {
            echo "Kural başarıyla aktif edildi.\n";
        } else {
            echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
            print_r($result['errors'] ?? 'Bilinmeyen hata');
        }
    }
    
    // Kural devre dışı bırakma fonksiyonu
    function pauseRule($apiKey, $email, $zoneId, $ruleId) {
        // CURL başlat
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules/{$ruleId}");
        
        // İstek verisi
        $data = json_encode(['status' => 'paused']);
        
        // CURL ayarları
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            "X-Auth-Email: {$email}",
            "X-Auth-Key: {$apiKey}",
            "Content-Type: application/json"
        ]);
    
        // İsteği gönder
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
        // CURL hata kontrolü
        if(curl_errno($ch)) {
            echo "CURL Hatası: " . curl_error($ch) . "\n";
            curl_close($ch);
            return;
        }
        curl_close($ch);
    
        // Yanıtı işle
        $result = json_decode($response, true);
        
        if ($httpCode == 200 && $result['success']) {
            echo "Kural başarıyla devre dışı bırakıldı.\n";
        } else {
            echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
            print_r($result['errors'] ?? 'Bilinmeyen hata');
        }
    }
    
    // Kullanım örnekleri:
    
    // Tüm kuralları listele
    echo "Kurallar listeleniyor...\n\n";
    listRules($apiKey, $email, $zoneId);
    
    // Belirli bir kuralı aktif et
    // echo "\nKural aktif ediliyor...\n";
    // activateRule($apiKey, $email, $zoneId, 'KURAL_ID');
    
    // Belirli bir kuralı devre dışı bırak
    // echo "\nKural devre dışı bırakılıyor...\n";
    // pauseRule($apiKey, $email, $zoneId, 'KURAL_ID');
    sanırım bu sorunsuz çalışacaktır.
  • 24-12-2024, 00:58:57
    #14
    victories adlı üyeden alıntı: mesajı görüntüle
    disabled değil paused kullanmamız gerekiyormuş. https://developers.cloudflare.com/fi...s/json-object/

    <?php
    
    // Cloudflare API kimlik bilgileri
    $apiKey = 'YOUR_API_KEY';
    $email = 'YOUR_EMAIL';
    $zoneId = 'YOUR_ZONE_ID';
    
    // Kuralları listeleme fonksiyonu
    function listRules($apiKey, $email, $zoneId) {
        // CURL başlat
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules");
        
        // CURL ayarları
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            "X-Auth-Email: {$email}",
            "X-Auth-Key: {$apiKey}",
            "Content-Type: application/json"
        ]);
    
        // İsteği gönder
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
        // CURL hata kontrolü
        if(curl_errno($ch)) {
            echo "CURL Hatası: " . curl_error($ch) . "\n";
            curl_close($ch);
            return;
        }
        curl_close($ch);
    
        // Yanıtı işle
        $result = json_decode($response, true);
        
        if ($httpCode == 200 && $result['success']) {
            if (empty($result['result'])) {
                echo "Hiç kural bulunamadı.\n";
                return;
            }
    
            echo "MEVCUT KURALLAR:\n";
            echo str_repeat('-', 100) . "\n";
            echo sprintf("%-32s | %-20s | %-15s | %s\n", 'KURAL ID', 'AD', 'DURUM', 'AÇIKLAMA');
            echo str_repeat('-', 100) . "\n";
    
            foreach ($result['result'] as $rule) {
                echo sprintf("%-32s | %-20s | %-15s | %s\n",
                    $rule['id'],
                    substr($rule['description'] ?? 'İsimsiz', 0, 20),
                    $rule['status'],
                    $rule['expression'] ?? 'Açıklama yok'
                );
            }
    
            echo "\nToplam " . count($result['result']) . " kural listelendi.\n";
        } else {
            echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
            print_r($result['errors'] ?? 'Bilinmeyen hata');
        }
    }
    
    // Kural aktifleştirme fonksiyonu
    function activateRule($apiKey, $email, $zoneId, $ruleId) {
        // CURL başlat
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules/{$ruleId}");
        
        // İstek verisi
        $data = json_encode(['status' => 'active']);
        
        // CURL ayarları
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            "X-Auth-Email: {$email}",
            "X-Auth-Key: {$apiKey}",
            "Content-Type: application/json"
        ]);
    
        // İsteği gönder
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
        // CURL hata kontrolü
        if(curl_errno($ch)) {
            echo "CURL Hatası: " . curl_error($ch) . "\n";
            curl_close($ch);
            return;
        }
        curl_close($ch);
    
        // Yanıtı işle
        $result = json_decode($response, true);
        
        if ($httpCode == 200 && $result['success']) {
            echo "Kural başarıyla aktif edildi.\n";
        } else {
            echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
            print_r($result['errors'] ?? 'Bilinmeyen hata');
        }
    }
    
    // Kural devre dışı bırakma fonksiyonu
    function pauseRule($apiKey, $email, $zoneId, $ruleId) {
        // CURL başlat
        $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules/{$ruleId}");
        
        // İstek verisi
        $data = json_encode(['status' => 'paused']);
        
        // CURL ayarları
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            "X-Auth-Email: {$email}",
            "X-Auth-Key: {$apiKey}",
            "Content-Type: application/json"
        ]);
    
        // İsteği gönder
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    
        // CURL hata kontrolü
        if(curl_errno($ch)) {
            echo "CURL Hatası: " . curl_error($ch) . "\n";
            curl_close($ch);
            return;
        }
        curl_close($ch);
    
        // Yanıtı işle
        $result = json_decode($response, true);
        
        if ($httpCode == 200 && $result['success']) {
            echo "Kural başarıyla devre dışı bırakıldı.\n";
        } else {
            echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
            print_r($result['errors'] ?? 'Bilinmeyen hata');
        }
    }
    
    // Kullanım örnekleri:
    
    // Tüm kuralları listele
    echo "Kurallar listeleniyor...\n\n";
    listRules($apiKey, $email, $zoneId);
    
    // Belirli bir kuralı aktif et
    // echo "\nKural aktif ediliyor...\n";
    // activateRule($apiKey, $email, $zoneId, 'KURAL_ID');
    
    // Belirli bir kuralı devre dışı bırak
    // echo "\nKural devre dışı bırakılıyor...\n";
    // pauseRule($apiKey, $email, $zoneId, 'KURAL_ID');
    sanırım bu sorunsuz çalışacaktır.
    Hocam kendi üzerinizde test ettiniz mi? şuan bende aktif/deaktif hiç birini yapmıyor.
  • 24-12-2024, 01:05:57
    #15
    lonescary adlı üyeden alıntı: mesajı görüntüle
    Hocam kendi üzerinizde test ettiniz mi? şuan bende aktif/deaktif hiç birini yapmıyor.
    Cloudflare kullanmadığım için test etme şansım yok, https://developers.cloudflare.com/fi...irewall-rules/ adresindeki açıklamalara bakmıştım.