-
Szenario: code if (rex_backend_login::hasSession() && $newsDataId != "") // REDAXO 5 Backend - Login - Check
{
$table = rex_yform_manager_table::get('rex_news');
$_csrf_key = $table->getCSRFKey();
$_csrf_params = rex_csrf_token::factory($_csrf_key)->getUrlParams();
$token = $_csrf_params['_csrf_token'];
$edit = ' <a style="" class="uk-button uk-button-primary" href="' . rex_url::backendPage(
'yform/manager/data_edit',
[
'table_name' => 'rex_news',
'func' => 'edit',
'data_id' => $newsDataId,
'_csrf_token' => $token
]
) . '">
<i class="fal fa-edit"></i>
News bearbeiten</a>
';
} |
Beta Was this translation helpful? Give feedback.
Answered by
skerbis
Aug 10, 2022
Replies: 1 comment
-
Lösung Die CSRF-Tokens für das Frontend und für das Backend unterscheiden sich. Vor Erstellung des CSRF-Codes rex::setProperty('redaxo', true); ausführen. Danach wieder mit rex::setProperty('redaxo', false); zurücksetzen |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
skerbis
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Lösung
Die CSRF-Tokens für das Frontend und für das Backend unterscheiden sich.
Hier hilft es die Umgebung temporär umzuschalten so dass die CSRF-Generierung in der richtigen Umgebung ausgeführt wird.
Vor Erstellung des CSRF-Codes
ausführen.
Danach wieder mit
zurücksetzen