MySQL SELECT sunucu yükü vs PHP Dosya varlığının kontrol

0 Cevap php

i'm implementing in a project of mine an ip banning functionality. First of all, i'd like to avoid .htaccess for this purpose 'cause the CMS probably would reset it upon modifications, so i have to use a PHP-send-header-and-die solution. Obviously every HTTP request will be checked.

Bir çok trafficated yeri düşünen, ben ip ban infos saklamak için iki çözüm vardır:

1 - Bir dizinde, diyelim / yasakları / i N dosyaları oluşturabilirsiniz nerede yasaklı IP'lere N = sayı, yani:

/ Bans/23.23.23.23.ban

23.23.23.23 yasak olacak, bu durumda benim script tüm yapmanız gereken, örneğin, file_exists ile kontrol etmektir:

<?php
    if( file_exists("bans/".$_SERVER['REMOTE_ADDR'].".ban"){
        header("HTTP/1.0 403 Forbidden");
        die();
    }
    else{
        // Continue surfing ....
    }
?>

2 - en cms_bans diyelim, bir MySQL tablo kullanın ve ip yasak listesinde ise her HTTP isteği kontrol etmek için bir SELECT yürütmek.

MySQL sorgu önbelleğe alma devre dışı bırakılır varsayarak: (D mysql vs dosya sistemi) daha az bir yük etkisi vardır bu 2 çözümleri göz önüne alındığında?

Sadece cevapları değil, sadece kişisel tercihler motive edin.

Teşekkürler

0 Cevap