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);