Autentificare
Începe

Documentație Easy Digital Downloads

Documentație, Materiale de Referință și Tutoriale pentru Easy Digital Downloads 

Linkuri de descărcare invalide din cauza modificării ordinii șirului de interogare

Easy Digital Downloads are un sistem robust pentru a menține securitatea linkurilor de descărcare a fișierelor și pentru a preveni abuzul acestora. Când se face clic pe un link de descărcare a fișierului, ordinea parametrilor furnizați este importantă. Din când în când, anumite configurații de găzduire, straturi de caching sau furnizori CDN pot reordona parametrii șirului de interogare pentru a permite efectuarea unui anumit nivel de bază de caching. Reordonarea acestor elemente va face ca Easy Digital Downloads să eșueze validarea tokenului pentru linkul de descărcare al unui client.

Cum pot afla dacă aceasta este problema mea?

Dacă, atunci când un utilizator face clic pentru a descărca fișierele sale, primește eroarea „Nu aveți permisiunea de a descărca acest fișier”, verificați dacă URL-ul are încă următorul format, acordând o atenție deosebită ordinii parametrilor. 

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

Dacă parametrii șirului de interogare nu sunt în ordinea de mai sus, atunci vă confruntați cu problema descrisă mai sus. Avem câteva soluții pentru a preveni apariția acesteia.

Dacă aveți un sistem de caching de pagină configurat, cum ar fi Cloudflare sau Varnish, este posibil să vedeți în continuare această eroare, chiar dacă parametrii dvs. par să fie în ordinea corectă. Acest lucru se datorează faptului că sistemul de caching de pagină sortează acei parametri înainte de a trimite cererea dvs. către serverul web pentru a fi procesată de PHP.

Cum pot preveni această problemă?

Modificări ale configurației de găzduire

Situația ideală este să nu aveți furnizorii dvs. care să reordoneze parametrii șirului de interogare atunci când cererea este pentru o descărcare de fișier, prevenind orice cerere care conține parametrul șirului de interogare eddfile să fie trecută prin regulile de reordonare.

Dacă utilizați Cloudflare și ați activat funcția lor Sortare Șir de Interogare, ar trebui să puteți dezactiva această funcție pentru a permite utilizatorilor să descarce fișierele fără erori.

Fragment de cod personalizat

Recunoaștem că acest lucru nu este întotdeauna posibil cu unii furnizori, așa că am scris o mică funcție care va rula orice validare eșuată a 2-a oară, pentru a verifica dacă am primit elementele în ordinea corectă.

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

Funcția de mai sus ar trebui testată într-un mediu de staging înainte de a fi utilizată într-un mediu de producție, pentru a verifica dacă funcționează corect în configurația dvs. specifică.

A fost util acest articol?

Începeți să vindeți astăzi!

Alăturați-vă peste 50.000 de proprietari de magazine inteligente și începeți să folosiți cel mai ușor mod de a vinde produse digitale cu WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]