Anmelden
Loslegen

Easy Digital Downloads Dokumentation

Dokumentation, Referenzmaterialien und Tutorials für Easy Digital Downloads 

Ungültige Download-Links aufgrund von Änderungen in der Abfragezeichenfolgenreihenfolge

Easy Digital Downloads verfügt über ein robustes System, um Ihre Dateidownload-Links sicher zu halten und Missbrauch zu verhindern. Wenn auf einen Dateidownload-Link geklickt wird, ist die Reihenfolge der bereitgestellten Parameter wichtig. Von Zeit zu Zeit können bestimmte Hosting-Konfigurationen, Caching-Ebenen oder CDN-Anbieter die Abfragezeichenfolgenparameter neu anordnen, um ein grundlegendes Caching zu ermöglichen. Das Neuanordnen dieser Elemente führt dazu, dass Easy Digital Downloads die Token-Validierung für den Download-Link eines Kunden fehlschlägt.

Woher weiß ich, ob dies mein Problem ist?

Wenn ein Benutzer beim Klicken zum Herunterladen seiner Dateien die Fehlermeldung „Sie haben keine Berechtigung, diese Datei herunterzuladen“ erhält, überprüfen Sie, ob die URL noch das folgende Format hat, und achten Sie genau auf die Reihenfolge der Parameter. 

https://example.org/index.php?eddfile=...&ttl=...&file=...&token=...

Wenn die Abfragezeichenfolgenparameter nicht in der obigen Reihenfolge sind, dann tritt das oben beschriebene Problem auf. Wir haben einige Lösungen, um dies zu verhindern.

Wenn Sie ein Seiten-Caching-System wie Cloudflare oder Varnish eingerichtet haben, können Sie diesen Fehler immer noch sehen, obwohl Ihre Parameter in der richtigen Reihenfolge zu sein scheinen. Dies liegt daran, dass das Seiten-Caching-System diese Parameter sortiert, bevor Ihre Anfrage an den Webserver gesendet wird, um von PHP verarbeitet zu werden.

Wie kann ich dieses Problem verhindern?

Änderungen der Hosting-Konfiguration

Die ideale Situation ist, dass Ihre Anbieter die Abfragezeichenfolgenparameter nicht neu anordnen, wenn die Anfrage ein Dateidownload ist, indem verhindert wird, dass eine Anfrage, die den Abfragezeichenfolgenparameter eddfile enthält, durch die Neuanordnungsregeln geleitet wird.

Wenn Sie Cloudflare verwenden und deren Query String Sort-Funktion aktiviert haben, sollten Sie diese Funktion deaktivieren können, damit Benutzer ihre Dateien ohne Fehler herunterladen können.

Benutzerdefinierter Code-Schnipsel

Wir erkennen an, dass dies bei einigen Anbietern möglicherweise nicht immer möglich ist. Daher haben wir eine kleine Funktion geschrieben, die jede fehlgeschlagene Validierung ein zweites Mal ausführt, um zu überprüfen, ob wir die Elemente in der richtigen Reihenfolge erhalten haben.

function ck_custom_validate_url_token( $ret, $url, $query_args ) {
	// If basic validation failed, let's make sure the URL prarms were in the right order and try again
	if ( false === $ret ) {
		$parts   = parse_url( $url );
		wp_parse_str( $parts['query'], $query_args );

		$fix_arg_order = array(
			'eddfile' => $query_args['eddfile'],
			'ttl'     => $query_args['ttl'],
			'file'    => $query_args['file'],
			'token'   => $query_args['token'],
		);

		$fixed_url   = add_query_arg( $fix_arg_order, site_url() );
		$fixed_token = edd_get_download_token( $fixed_url );

		$ret         = $query_args['token'] === $fixed_token;
	}

	return $ret;
}
add_filter( 'edd_validate_url_token', 'ck_custom_validate_url_token', 10, 3 );

Die obige Funktion sollte in einer Staging-Umgebung getestet werden, bevor sie in einer Produktionsumgebung verwendet wird, um zu überprüfen, ob sie in Ihrer spezifischen Konfiguration korrekt funktioniert.

Was this article helpful?

Verkaufen Sie noch heute!

Schließen Sie sich über 50.000 klugen Shop-Besitzern an und nutzen Sie die einfachste Methode, um digitale Produkte mit WordPress zu verkaufen.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]