Return 403 response on CSRF fail instead of silently failing

Also moved backend::lang.page.invalid_token.label to system::lang.page.invalid_token.label. Fixes
This commit is contained in:
Luke Towers 2019-10-06 23:21:08 -06:00
parent 64d02b77cc
commit d31006ae1a
62 changed files with 150 additions and 95 deletions

View File

@ -212,7 +212,7 @@ class Controller extends ControllerBase
* Check security token.
*/
if (!$this->verifyCsrfToken()) {
return Response::make(Lang::get('backend::lang.page.invalid_token.label'), 403);
return Response::make(Lang::get('system::lang.page.invalid_token.label'), 403);
}
/*

View File

@ -25,9 +25,6 @@ return [
'help' => "Неабходна база дадзеных мець доступ у панэль кіравання. Праверце, што база дадзеных правільна наладжаная, а міграцыі выкананыя, перад тым, як пасправаць зноў",
'cms_link' => "Вярнуцца на хатнюю старонку"
],
'invalid_token' => [
'label' => "Няправільны токен бяспекі"
]
],
'partial' => [
'not_found_name' => "Частковы шаблон \":name\" не знойдзены."

View File

@ -19,9 +19,6 @@ return [
'help' => "Вие нямате нужните права за да видите тази страница.",
'cms_link' => 'Върни се към администраторския-панел'
],
'invalid_token' => [
'label' => 'Невалиден код за сигурност (token)'
]
],
'partial' => [
'not_found_name' => "Частичната страница ':name' не е намерена."

View File

@ -25,9 +25,6 @@ return [
'help' => "K přístupu do administrace je zapotřebí databáze. Zkontrolujte, zda je databáze nakonfigurována a migrována a zkuste to znovu.",
'cms_link' => 'Zpět na úvodní stránku'
],
'invalid_token' => [
'label' => 'Neplatný bezpečnostní token',
]
],
'partial' => [
'not_found_name' => "Dílčí šablona ':name' nebyla nalezena."

View File

@ -24,9 +24,6 @@ return [
'help' => "En database er påkrævet for at kunne tilgå backenden. Kontroller om databasen er konfigureret og migreret, inden du prøver igen.",
'cms_link' => 'Tilbage til hjemmesiden'
],
'invalid_token' => [
'label' => 'Ugyldig sikkerhedstoken'
]
],
'partial' => [
'not_found_name' => "Partialen ':name' kunne ikke findes."

View File

@ -25,9 +25,6 @@ return [
'help' => "Eine Datenbank wird benötigt um Zugriff auf das Backend zu haben. Überprüfe die Datenbankkonfiguration und migriere die Datenbank bevor du es noch einmal probierst.",
'cms_link' => 'Zurück zur Homepage'
],
'invalid_token' => [
'label' => 'Ungültiges Sicherheitstoken'
]
],
'partial' => [
'not_found_name' => "Das Partial ':name' wurde nicht gefunden.",

View File

@ -19,9 +19,6 @@ return [
'help' => "Δεν έχεις τα απαραίτητα δικαιώματα για να δεις αυτήν την σελίδα.",
'cms_link' => 'Επιστροφή στό back-end.',
],
'invalid_token' => [
'label' => 'Μη έγκυρο διακριτικό ασφαλείας',
],
'no_database' => [
'label' => 'Δεν βρέθηκε η βάση δεδομένων',
'help' => "Η βάση δεδομένων είναι απαραίτητη για να έχετε πρόσβαση στο back-end. Ελέγξτε εάν η βάση δεδομένων είναι ρυθμισμένη και συνδεδεμένη πριν προσπαθήσετε ξανά.",

View File

@ -32,9 +32,6 @@ return [
'help' => "A database is required to access the back-end. Check the database is configured and migrated before trying again.",
'cms_link' => 'Return to the homepage',
],
'invalid_token' => [
'label' => 'Invalid security token',
],
],
'partial' => [
'not_found_name' => "The partial ':name' is not found.",

View File

@ -19,9 +19,6 @@ return [
'help' => 'No tiene permisos necesarios para ver esta página.',
'cms_link' => 'Volver al panel de administración'
],
'invalid_token' => [
'label' => 'Token de seguridad invalido'
]
],
'partial' => [
'not_found_name' => "El parcial ':name' no se encuentra."

View File

@ -25,9 +25,6 @@ return [
'help' => "Haldusliidese kasutamiseks peab olemas seadistatud andmebaas. Enne jätkamist palun kontrolli andmebaasi seadistust.",
'cms_link' => 'Tagasi kodulehele'
],
'invalid_token' => [
'label' => 'Vigane turvamärk'
]
],
'partial' => [
'not_found_name' => "Koodiblokki ':name' ei leitud."

View File

@ -25,9 +25,6 @@ return [
'help' => "جهت استفاده از بخش مدیریت به یک پایگاه داده نیاز دارید. تنظیمات پایگاه داده را بررسی نموده و از نصب جدولها در آن اطمینان حاصل کنید.",
'cms_link' => 'Return to the homepage'
],
'invalid_token' => [
'label' => 'کلید امنیتی معتبر نمی باشد'
]
],
'partial' => [
'not_found_name' => "بخشی با نام ':name' یافت نشد.",

View File

@ -25,9 +25,6 @@ return [
'help' => "Tietokanta on pakollinen. Varmista, että tietokanta on olemassa ja pystyssä kunnes kokeilet uudelleen.",
'cms_link' => 'Palaa kotisivulle'
],
'invalid_token' => [
'label' => 'Token on virheellinen'
]
],
'partial' => [
'not_found_name' => "Osiota ':name' ei löydy."

View File

@ -27,9 +27,6 @@ return [
'help' => 'Une base de données est requise pour laccès à linterface dadministration. Veuillez vérifier que la base de données existe et que les migrations ont été effectuées avant de ré-essayer.',
'cms_link' => 'Retour à laccueil'
],
'invalid_token' => [
'label' => 'La clé de sécurité est invalide'
]
],
'partial' => [
'not_found_name' => 'Le modèle partiel ":name" est introuvable.'

View File

@ -32,9 +32,6 @@ return [
'help' => 'Kérjük ellenőrizze a hozzáférési adatok helyességét majd próbálja újra betölteni az oldalt.',
'cms_link' => 'Vissza a weboldalra'
],
'invalid_token' => [
'label' => 'A biztonsági kód érvényessége lejárt. Kérjük töltse be újra az oldalt.'
]
],
'partial' => [
'not_found_name' => "A(z) ':name' részlap nem található.",

View File

@ -19,9 +19,6 @@ return [
'help' => "Non hai le autorizzazioni necessarie per accedere a questa pagina.",
'cms_link' => 'Ritorna al pannello di controllo'
],
'invalid_token' => [
'label' => 'Token di protezione non valido'
]
],
'partial' => [
'not_found_name' => "La vista parziale ':name' non è stata trovata."

View File

@ -25,9 +25,6 @@ return [
'help' => "백엔드에 접속하기 위해선 DB가 필요합니다. 다시 접속하시기 전에 DB가 정상적으로 설정및 이전되었는지 확인해주세요.",
'cms_link' => '홈페이지로 돌아가기'
],
'invalid_token' => [
'label' => '잘못된 보안 토큰'
]
],
'partial' => [
'not_found_name' => "':name' 페이지를 찾을 수 없습니다.",

View File

@ -25,9 +25,6 @@ return [
'help' => "Duomenų bazė reikalinga administracijos prieigai. Patikrinkite duomenų bazės konfigūraciją bei migracijas ir bandykite dar kartą.",
'cms_link' => 'Grįžti į svetainę'
],
'invalid_token' => [
'label' => 'Netinkama saugos žyma'
]
],
'partial' => [
'not_found_name' => "Priedėlis ':name' nerastas."

View File

@ -19,9 +19,6 @@ return [
'help' => "Jums nav piekļuves tiesību, lai skatītu šo lapu.",
'cms_link' => 'Atgriezties back-end'
],
'invalid_token' => [
'label' => 'Nederīga drošības atslēga'
]
],
'partial' => [
'not_found_name' => "Daļa ':name' nav atrasta."

View File

@ -24,9 +24,6 @@ return [
'help' => "En database kreves for å koble til backend. Sjekk at databasetilgang er konfigurert og migrert før du prøver igjen.",
'cms_link' => 'Tilbake til hovedsiden'
],
'invalid_token' => [
'label' => 'Ugyldig sikkerhets-token'
]
],
'partial' => [
'not_found_name' => "En partial ved navn ':name' ble ikke funnet."

View File

@ -32,9 +32,6 @@ return [
'help' => 'Een database is nodig om toegang te krijgen tot de back-end. Controleer of de database juist is geconfigureerd en probeer het opnieuw.',
'cms_link' => 'Terug naar homepagina',
],
'invalid_token' => [
'label' => 'Ongeldig token',
],
],
'partial' => [
'not_found_name' => "Het sjabloon (partial) ':name' is niet gevonden.",

View File

@ -24,9 +24,6 @@ return [
'help' => 'Baza danych jest wymagana do dostępu do panelu administracyjnego. Sprawdz czy baza danych jest prawidłowo skonfigurowana i zmigrowana przed ponowną próbą.',
'cms_link' => 'Powrót do strony głównej',
],
'invalid_token' => [
'label' => 'Nieprawidłowy żeton bezpieczeństwa',
],
],
'partial' => [
'not_found_name' => "Blok ':name' nie został odnaleziony.",

View File

@ -32,9 +32,6 @@ return [
'help' => "Um banco de dados é necessário para acessar o back-end. Verifique se o banco de dados está configurado e migrou antes de tentar novamente.",
'cms_link' => 'Retornar para a página inicial',
],
'invalid_token' => [
'label' => 'Token de segurança inválido'
]
],
'partial' => [
'not_found_name' => 'O bloco ":name" não foi encontrado.',

View File

@ -25,9 +25,6 @@ return [
'help' => "Uma base de dados é necessária para acesso ao back-end. Verifique se a base dados se encontra configurada e migrada antes de tentar novamente.",
'cms_link' => 'Regressar á página inicial'
],
'invalid_token' => [
'label' => 'Token de segurança inválido'
]
],
'partial' => [
'not_found_name' => 'O bloco ":name" não foi encontrado.',

View File

@ -27,9 +27,6 @@ return [
'help' => "Для доступа к серверу требуется база данных. Проверьте, что база данных настроена и перенесена, прежде чем повторять попытку.",
'cms_link' => 'Вернуться на главную страницу'
],
'invalid_token' => [
'label' => 'Неверный токен безопасности'
],
],
'partial' => [
'not_found_name' => 'Не удалось найти шаблон (partial) с именем :name.'

View File

@ -25,9 +25,6 @@ return [
'help' => "Pre prístup do administrácie je potrebná databáza. Zkontrolujte, či je databáza nakonfigurovaná a zmigrovaná a skúste to znova.",
'cms_link' => 'Späť na úvodnú stránku'
],
'invalid_token' => [
'label' => 'Neplatný bezpečnostný token'
]
],
'partial' => [
'not_found_name' => "Čiastočná šablona ':name' nebola nájdená."

View File

@ -19,9 +19,6 @@ return [
'help' => "Du har inte behörighet att visa den här sidan.",
'cms_link' => "Gå till CMS backend",
],
'invalid_token' => [
'label' => 'Ogiltig säkerhetstoken'
],
],
'partial' => [
'not_found_name' => "En partial med namn ':name' kunde inte hittas",

View File

@ -29,9 +29,6 @@ return [
'help' => "จำเป็นต้องมีฐานข้อมูลในการเข้าถึงหน้าเว็บหลังบ้าน ตรวจสอบว่าฐานข้อมูลได้ถูกตั้งค่าและโอนย้ายก่อนลองอีกครั้ง",
'cms_link' => 'กลับสู่หน้าเว็บหลัก',
],
'invalid_token' => [
'label' => 'โทเค็นความปลอดภัยไม่ถูกต้อง',
],
],
'partial' => [
'not_found_name' => "ไม่พบส่วนย่อย ':name'",

View File

@ -27,9 +27,6 @@ return [
'help' => "Yönetim paneline erişebilmeniz için geçerli bir veritabanı yapılandırması yapmalısınız. Lütfen ayarların kontrol edin.",
'cms_link' => 'Anasayfaya dön',
],
'invalid_token' => [
'label' => 'Geçersiz güvenlik anahtarı'
],
],
'partial' => [
'not_found_name' => "':name' bölümü bulunamadı.",

View File

@ -25,9 +25,6 @@ return [
'help' => 'Для доступу до back-end - потрібна база данних. Перевірте, налаштування та міграції бази данних, перш ніж спробувати знову.',
'cms_link' => 'Повернутися на домашню сторінку'
],
'invalid_token' => [
'label' => 'Неправильний токен безпеки'
],
],
'partial' => [
'not_found_name' => "Частину ':name' не знайдено.",

View File

@ -25,9 +25,6 @@ return [
'help' => "Bắt buộc phải có 1 database để truy cập vào trang quản trị. Kiểm tra lại cấu hình database và migrated trước khi thử lại.",
'cms_link' => 'Quay lại trang chủ'
],
'invalid_token' => [
'label' => 'Security token không hợp lệ'
]
],
'partial' => [
'not_found_name' => "Không tìm thấy partial ':name'."

View File

@ -32,9 +32,6 @@ return [
'help' => "需要数据库以访问后端。请在再次尝试之前检查数据库的配置和迁移。",
'cms_link' => '返回首页'
],
'invalid_token' => [
'label' => '非法安全令牌'
]
],
'partial' => [
'not_found_name' => "未找到部件 ':name' ",

View File

@ -194,8 +194,7 @@ class Controller
if ($event = $this->fireSystemEvent('cms.page.beforeDisplay', [$url, $page])) {
if ($event instanceof Page) {
$page = $event;
}
else {
} else {
return $event;
}
}
@ -380,7 +379,6 @@ class Controller
if (
$useAjax &&
($handler = post('_handler')) &&
$this->verifyCsrfToken() &&
($handlerResponse = $this->runAjaxHandler($handler)) &&
$handlerResponse !== true
) {
@ -804,6 +802,13 @@ class Controller
*/
protected function runAjaxHandler($handler)
{
/*
* Check security token.
*/
if (!$this->verifyCsrfToken()) {
return Response::make(Lang::get('system::lang.page.invalid_token.label'), 403);
}
/**
* @event cms.ajax.beforeRunHandler
* Provides an opportunity to modify an AJAX request

View File

@ -14,6 +14,11 @@ return [
'combiner' => [
'not_found' => "Аб'яднальны файл \":name\" не знойдзены"
],
'page' => [
'invalid_token' => [
'label' => "Няправільны токен бяспекі",
],
],
'system' => [
'name' => "Сістэма",
'menu_label' => "Сістэма",

View File

@ -13,6 +13,11 @@ return [
'combiner' => [
'not_found' => "Комбинираният файл ':name' не е намерен."
],
'page' => [
'invalid_token' => [
'label' => 'Невалиден код за сигурност (token)',
],
],
'system' => [
'name' => 'Система',
'menu_label' => 'Система',

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Nelze vytvořit soubor: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Neplatný bezpečnostní token',
],
],
'combiner' => [
'not_found' => "Slučující soubor ':name' nebyl nalezen."
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Kan ikke oprette filen: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Ugyldig sikkerhedstoken',
],
],
'combiner' => [
'not_found' => "Kombineringsfilen ':name', kunne ikke findes."
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => "Konnte Datei :name nicht erstellen",
],
'page' => [
'invalid_token' => [
'label' => 'Ungültiges Sicherheitstoken',
],
],
'combiner' => [
'not_found' => "Die combiner Datei ':name' wurde nicht gefunden.",
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Δεν είναι δυνατή η δημιουργία του αρχείου: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Μη έγκυρο διακριτικό ασφαλείας',
],
],
'combiner' => [
'not_found' => "Το αρχείο συγχώνευσης ':name' δεν βρέθηκε."
],

View File

@ -461,6 +461,9 @@ return [
'label' => 'Page error',
'help' => "We're sorry, but something went wrong and the page cannot be displayed."
],
'invalid_token' => [
'label' => 'Invalid security token',
],
'maintenance' => [
'label' => "We'll be right back!",
'help' => "We're currently down for maintenance, check back soon!",

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'No es posible crear el archivo: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Token de seguridad invalido',
],
],
'combiner' => [
'not_found' => "El archivo combinador ':name' no se encuentra."
],

View File

@ -47,6 +47,11 @@ return [
'file' => [
'create_fail' => 'Faili :name ei õnnestunud luua'
],
'page' => [
'invalid_token' => [
'label' => 'Vigane turvamärk',
],
],
'combiner' => [
'not_found' => "Ühendaja faili ':name' ei leitud."
],

View File

@ -50,6 +50,11 @@ return [
'file' => [
'create_fail' => 'مشکلی در ایجاد فایل :name به وجود آمده است',
],
'page' => [
'invalid_token' => [
'label' => 'کلید امنیتی معتبر نمی باشد',
],
],
'combiner' => [
'not_found' => "فایل ترکیب کننده ':name' یافت نشد.",
],

View File

@ -50,6 +50,11 @@ return [
'file' => [
'create_fail' => 'Ei voida luoda tiedostoa: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Token on virheellinen',
],
],
'combiner' => [
'not_found' => "Yhdistelmätiedostoa ':name' ei löydy."
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => "Impossible de créer le fichier : :name",
],
'page' => [
'invalid_token' => [
'label' => 'La clé de sécurité est invalide',
],
],
'combiner' => [
'not_found' => "Le fichier combiné ':name' est introuvable.",
],

View File

@ -413,7 +413,10 @@ return [
'custom_error' => [
'label' => 'Laphiba',
'help' => 'Sajnáljuk, de hiba történt, ezért az oldal nem megjeleníthető.'
]
],
'invalid_token' => [
'label' => 'A biztonsági kód érvényessége lejárt. Kérjük töltse be újra az oldalt.',
],
],
'pagination' => [
'previous' => 'Előző',

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Impossibile creare il file: :name',
],
'page' => [
'invalid_token' => [
'label' => 'Token di protezione non valido',
],
],
'combiner' => [
'not_found' => "Il file combinatore ':name' non è stato trovato.",
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => "파일 ':name'을 작성할 수 없습니다.",
],
'page' => [
'invalid_token' => [
'label' => '잘못된 보안 토큰',
],
],
'combiner' => [
'not_found' => "combiner파일 ':name'을 발견할 수 없습니다.",
],

View File

@ -46,6 +46,11 @@ return [
'file' => [
'create_fail' => 'Negalime sukurti failo: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Netinkama saugos žyma',
],
],
'combiner' => [
'not_found' => "Bendrintojo failas ':name' nerastas."
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Nevar izveidot failu: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Nederīga drošības atslēga',
],
],
'combiner' => [
'not_found' => "Kombināciju fails ':name' netika atrasts."
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Kan ikke opprette filen: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Ugyldig sikkerhets-token',
],
],
'combiner' => [
'not_found' => "Kombinasjonsfilen ':name' ble ikke funnet."
],

View File

@ -53,6 +53,11 @@ return [
'file' => [
'create_fail' => 'Bestand aanmaken mislukt: :name',
],
'page' => [
'invalid_token' => [
'label' => 'Ongeldig token',
],
],
'combiner' => [
'not_found' => "Het samenvoegbestand ':name' is niet gevonden.",
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Nie można stworzyć pliku: :name',
],
'page' => [
'invalid_token' => [
'label' => 'Nieprawidłowy żeton bezpieczeństwa',
],
],
'combiner' => [
'not_found' => "Połączony plik ':name' nie istnieje.",
],

View File

@ -418,6 +418,9 @@ return [
'label' => 'Erro de página',
'help' => "Desculpe, mas algo deu errado e a página não pode ser exibida."
],
'invalid_token' => [
'label' => 'Token de segurança inválido',
],
],
'pagination' => [
'previous' => 'Anterior',

View File

@ -46,6 +46,11 @@ return [
'file' => [
'create_fail' => 'Não é possível criar o ficheiro: :name',
],
'page' => [
'invalid_token' => [
'label' => 'Token de segurança inválido',
],
],
'combiner' => [
'not_found' => 'O ficheiro combinador ":name" não foi encontrado.',
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Невозможно создать файл: :name',
],
'page' => [
'invalid_token' => [
'label' => 'Неверный токен безопасности',
],
],
'combiner' => [
'not_found' => "Сборщик ресурсов не может найти файл ':name'.",
],

View File

@ -51,6 +51,11 @@ return [
'file' => [
'create_fail' => 'Nie je možné vytvoriť súbor: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Neplatný bezpečnostný token',
],
],
'combiner' => [
'not_found' => "Zlučujúci súbor ':name' nebol nájdený."
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => "Kunde inte skapa fil: :name",
],
'page' => [
'invalid_token' => [
'label' => 'Ogiltig säkerhetstoken',
],
],
'combiner' => [
'not_found' => "Kombinationsfilen ':name' kunde ej hittas",
],

View File

@ -420,6 +420,9 @@ return [
'message' => "ข้อความ:",
'available_at' => "ลองใหม่อีกครั้งหลังจาก:",
],
'invalid_token' => [
'label' => 'โทเค็นความปลอดภัยไม่ถูกต้อง',
],
],
'pagination' => [
'previous' => 'ก่อนหน้า',

View File

@ -53,6 +53,11 @@ return [
'file' => [
'create_fail' => "Dosya oluşturulamıyor: :name",
],
'page' => [
'invalid_token' => [
'label' => 'Geçersiz güvenlik anahtarı',
],
],
'combiner' => [
'not_found' => "Kombine dosyası: ':name' bulunamadı.",
],

View File

@ -11,6 +11,11 @@ return [
'file' => [
'create_fail' => 'Неможливо створити файл: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Неправильний токен безпеки',
],
],
'combiner' => [
'not_found' => "Складальник ресурсів не може знайти файл ':name'.",
],

View File

@ -51,6 +51,11 @@ return [
'file' => [
'create_fail' => 'Không thể tạo file: :name'
],
'page' => [
'invalid_token' => [
'label' => 'Security token không hợp lệ',
],
],
'combiner' => [
'not_found' => "Không tìm thấy combiner file ':name'."
],

View File

@ -370,6 +370,9 @@ return [
'label' => '页面错误',
'help' => "抱歉,页面因为一些错误导致无法显示"
],
'invalid_token' => [
'label' => '非法安全令牌',
],
],
'pagination' => [
'previous' => '上一页',