Referer Header für cURL Requests setzen

Ab Version 2.5.0 des WooCommerce Bexio Automator (WCBA) Plugins, wird bei cURL Requests ein sogenannter 'Referer' Header gesetzt. Dies dient zusätzlichen Schutzmassnahmen, welche integriert werden und diesen Header erfordern.

 

Wenn Sie nicht auf die entsprechende WCBA Version aktualisieren, kann es sein, dass gewisse Requests blockiert werden, falls dieser Header (je nach Konfiguration Ihres Shops) nicht mitgeschickt wird. Dies bedeutet, dass gewisse Funktionen nicht verwendet werden können und die Synchronisierung in bestimmten Teilen fehlschlägt.

 

Wenn Sie von entsprechenden Problemen betroffen sind, müssen Sie das Plugin aktualisieren.

Wenn Sie das Plugin nicht aktualisieren wollen (oder können), müssen Sie selber sicherstellen, dass in der cURL Session ein entsprechender Referer Header mitgeschickt wird.  Dies muss für die jeweilige cURL Session gesetzt werden. WordPress bietet dazu eine Action, um die in der Methode

wp_remote_request()

verwendete Session entsprechend anzupassen, bevor der Request abgesetzt wird.

 

Um sicherzustellen, dass ein Referer geschickt wird, können Sie folgendes Snippet in Ihrem Theme / einem Plugin einfügen:

/**
 * Set the referer automatically using CURLOPT_REFERER
 */
add_action('http_api_curl', 'set_referer', 10, 3);
function set_referer($handle, $parsed_args, $url) {
    $current_url = ((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? 'https://' : 'http://') . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
    curl_setopt($handle, CURLOPT_REFERER, $current_url);
}

Das Snippet fügt jedem cURL Request die aktuelle URL als Referer hinzu. Wenn Sie dies auf einzelne Requests einschränken wollen, können Sie den Callback entsprechend anpassen.

 

Wenn Sie Schwierigkeiten dabei haben, dies einzurichten, wenden Sie sich an Ihre Website-Betreuer:innen.

War dieser Beitrag hilfreich?
0 von 0 fanden dies hilfreich

Kommentare

0 Kommentare

Zu diesem Beitrag können keine Kommentare hinterlassen werden.

Haben Sie noch Fragen?
Anfrage einreichen