• 15-05-2008, 20:51:51
    #1
    Your submission could not be processed because a security token was missing or mismatched.
    If this occurred unexpectedly, please inform the administrator and describe the action you performed before you received this error.
    CSRF (Cross Site Request Forgery = Çapraz site isteği sahtekarlığı) adlı yeni vbulletin koruma sistemi vb 3.6.10 ve üstü sürümlerine eklenmiş olup geri uyumluluğu vardır. Bu koruma 3.parti Hack/Plug-in veya scriptleri de etkileyebilir.

    CSRF koruması için 3.Parti script düzenleme :

    Bu saldırı yönetminde isteğin nereden geldiğini bilmenin ve/veya 3.parti scriptin kullanıcıyıve/veya scripti neye zorladığı veya kullanıcının neyi kabul ettiğini saptamak pek mümkün değildir.Bir işaret (token) tüm vbulletin son sürümlerine eklenmiştir. ve bundan sonra hiç bir POST isteği bu korumadan geçmeden işlem görmez

    Buna ilaveten her güvenlik işareti (SecurityToken) için POST isteği uzak sayfanın kullanıcıyı bir komut yürmete isteğine zorlamasını kaldırmıştır. Bu koruma tüm vbulletin dosyalarına eklenmiştir ve tüm 3.parti dosyalar bu korumayı seçmek ve uygun bir gizli dosya ekleme zorundadır. Bu koruma geri uyumluluk için saklanmıştır.

    Korumayı kendi dosyanıza eklemke :

    CSRF koruması içindeki dosyanızı seçmek için THIS_SCRIPT komutundan hemen sonra aşağıdaki komutu ekleyin
    define('CSRF_PROTECTION', true);
    Bu değişiklik ile tüm POST istekleri securitytoken (güvenlik işareti)varlığını denetleyecek ve kullanıcı için kıyas yapacak. Eğer yanlış ise yukarıda bahsi geçen hata mesajı görüncek ve sistem duracaktır.

    Eğer bu FALSE olarak ayarlanırsa CSRF koruması dosyalardan kaldırılacaktır.BU işlem uzak POST istekleri için uygundur.

    Bu öntanımlı sabit eğer dosyanız ile tanımlanmamış ise eski tip refrans kontrolu ile işlem görücektir.

    Template Değişiklikleri :

    Aşağıdaki değişiklikler vbulletine POST isteği gönderen tüm formlara eklenmelidir.
    <input type="hidden" name="securitytoken" value="$bbuserinfo[securitytoken]" />
    Bu gibi hatalar 3.6.10 ve/veya üstü sürümlerinde görülür. ve aşağıdaki adımları izleyerek çözülebilir.

    Mutlak hareketleri için devre dışı brakmak :

    Bazı işlemleri bu koruma dışında bırakmak gerekebilir. Bunun için aşağıdaki komut kullanılamalıdır
    define('CSRF_SKIP_LIST', 'tespara,divran');
    Yukarıdaki komut aşağıdaki gibi sayfalar için çalıştırılmaz
    index.php?do=divran  index.php?do=tespara
    CSRF_SKIP_LIST ön tanımlı sabiti değersiz olarak kullanılırsa varsayılan değer ile işlem yapar

    Eğer bu koruma çalışma zamanı için etkinleştirilmek istenirse aşağıdaki gibi bir komut kullanılamlıdır.
    if (THIS_SCRIPT == 'index')
    {
            $vbulletin->csrf_skip_list[] = 'tespara';
    }
    $_POST kullanan AJAX istekleri açin aşağıdaki gibi bir komut kullanılır

    YAHOO.util.Connect.asyncRequest('POST', scriptpath + '?do=ajax', {
        success: this.handle_ajax_response,
        failure: this.handle_ajax_error,
        timeout: vB_Default_Timeout,
        scope: this
    }, SESSIONURL + 'securitytoken=' + SECURITYTOKEN + '&foo=' + foo);
    Buna ilaveten aşağıdaki kurallar uygulanmalı:

    Yükseltme 3.7.x e ait dosyalar ile yapılmadı. 3.7.x dosyaları yüklenerek yükseletme tekrar yapılır (install/finalupgrade.php)

    Uygulama:
    Farzumahal konuyu silerken hangi dosya şlem görür ? inlinemod.php dosyası. bu dosyayı açıyoruz

    // ####################### SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE);
    @ini_set('memory_limit', 128 * 1024 * 1024);
     
    // #################### DEFINE IMPORTANT CONSTANTS #######################
    if ($_REQUEST['do'] == 'mergeposts' OR $_POST['do'] == 'domergeposts')
    {
        define('GET_EDIT_TEMPLATES', true);
    }
    define('THIS_SCRIPT', 'inlinemod');
    define('CSRF_PROTECTION', true);
    son satırda gördüğünüz gibi CSRF koruması tanımlanmış. Bu korumayı devre dışı brakalım bunun için o satırı aşağıdaki gibi değişin
     define('CSRF_PROTECTION', false);
    Örnek : konu silerken bu hatayı alıyorsanız

    Farzumahal konuyu silerken hangi dosya işlem görür ? inlinemod.php dosyası. bu dosyayı açıyoruz

    // ####################### SET PHP ENVIRONMENT ###########################
    error_reporting(E_ALL & ~E_NOTICE);
    @ini_set('memory_limit', 128 * 1024 * 1024);
    
    // #################### DEFINE IMPORTANT CONSTANTS #######################
    if ($_REQUEST['do'] == 'mergeposts' OR $_POST['do'] == 'domergeposts')
    {
        define('GET_EDIT_TEMPLATES', true);
    }
    define('THIS_SCRIPT', 'inlinemod');
    define('CSRF_PROTECTION', true);
    son satırda gördüğünüz gibi CSRF koruması tanımlanmış. Bu korumayı devre dışı brakalım bunun için o satırı aşağıdaki gibi değişin
     define('CSRF_PROTECTION', false);
  • 15-05-2008, 21:26:56
    #2
    Platin üye
    Bilgilendirme için teşekkürler.Müsade ederseniz isminizi ekleyerek başka platformlarda paylaşabilirmiyiz ?
  • 16-05-2008, 13:51:57
    #3
    üye olurken siteadı.com/profile.php?do=dst linkine yönleniyor ve bu hata çıkıyor

    Your submission could not be processed because a security token was missing or mismatched.

    nasıl çözeriz bu hatayı?
  • 16-05-2008, 13:54:10
    #4
    Uygar adlı üyeden alıntı: mesajı görüntüle
    üye olurken siteadı.com/profile.php?do=dst linkine yönleniyor ve bu hata çıkıyor

    Your submission could not be processed because a security token was missing or mismatched.

    nasıl çözeriz bu hatayı?
    define('CSRF_PROTECTION', false);
    ile çözersin
  • 17-05-2008, 14:17:22
    #5
    Haymac adlı üyeden alıntı: mesajı görüntüle
    define('CSRF_PROTECTION', false);
    ile çözersin
    iyi de nerden editleyecem dediğini?
  • 17-05-2008, 14:38:19
    #6
    Uygar adlı üyeden alıntı: mesajı görüntüle
    iyi de nerden editleyecem dediğini?
    Konuyu baştan sona dikkatlice okusaydınız bu sorunuza hiç gerek kalmazdı.

    Alıntı
    inlinemod.php dosyası. bu dosyayı açıyoruz
  • 17-05-2008, 14:48:45
    #7
    _Kaos_ adlı üyeden alıntı: mesajı görüntüle
    Konuyu baştan sona dikkatlice okusaydınız bu sorunuza hiç gerek kalmazdı.
    konuyu silerken ilgili hatayı almıyorum. sadece üye olurken hatayı alıyorum. konuyu okudum inlinemod.php konu silmede hata alanlar için sanırım...
  • 17-05-2008, 19:40:46
    #8
    aynı hatayı bende almaktayım... üye olunduktan sonra hata mesajı karşıma çıkıor.
    inlinemod.php i editledim
    " define('CSRF_PROTECTION', false); " yaptım ama herhangi bir değişiklik olmadı acaba kullandığım hack/plugin leri kaldırsam mı ?

    fikri olan var mı arkadaşlar...
  • 17-05-2008, 20:38:46
    #9
    Hatayı aldığınız konum siteadı.com/profile.php?do=dst yani işlem yapılacak dosya

    profile.php