Výchozí chování — pouze REMOTE_ADDR
Plugin defaultně získává IP adresu klienta výhradně z $_SERVER['REMOTE_ADDR']. Důvod: ostatní hlavičky (X-Forwarded-For, Client-IP, CF-Connecting-IP) lze podvrhnout standalone HTTP requestem, což by umožnilo útočníkovi obejít fraud detection.
Cloudflare a load balancery
Pokud běžíte za Cloudflare nebo load balancerem, REMOTE_ADDR je IP edge nodu, ne klienta. Pro získání skutečné client IP zapněte:
wp option update affinite_wp_affiliate_trust_proxy_headers yes
Plugin pak preferuje (v tomto pořadí): HTTP_CF_CONNECTING_IP → HTTP_X_FORWARDED_FOR → HTTP_CLIENT_IP → REMOTE_ADDR.
Customizace pořadí přes filter
Filtrem můžete omezit, které hlavičky se mají zkoumat. Užitečné pokud chcete trust pouze Cloudflare:
add_filter('affinite_trusted_proxy_headers', function() {
return ['HTTP_CF_CONNECTING_IP']; // Jen Cloudflare
});
X-Forwarded-For parsing
Hlavička X-Forwarded-For může obsahovat chain IP: client_ip, proxy1_ip, proxy2_ip. Plugin správně extrahuje first entry (klient).
Visitor ID generation
Pro deduplikaci kliknutí (návštěvník klikne 5× na stejný odkaz) plugin generuje visitor_id:
visitor_id = md5(IP + User-Agent + timestamp)
Stejný visitor v krátkém okně generuje stejný hash — admin v reports vidí unique visitors místo total clicks.
Fraud signály v datech
Plugin neprovádí automatickou fraud detection, ale ukládá signály pro manuální vyhodnocení:
- Vysoký click count z jedné IP — možný bot nebo self-promotion.
- Konverze hned po prvním kliku — možný self-affiliation.
- Chybějící referrer — direct traffic, lze validovat proti reportovaným kampaním.
- Stejný customer_email napříč konverzemi různých affiliate — možná fraudulentní spolupráce.
- UTM parametry chybí kdy by měly být (kampaň byla deklarována s UTM).
Doporučená praxe
- Pravidelně review top click sources (IP, referrer) — neobvykle vysoký objem znamená vyšetřování.
- Manuální schvalování velkých provizí (nad threshold) i při zapnutém auto-approve.
- Suspend při podezření — zachová audit trail, lze obnovit.
- Reject + IP block na úrovni serveru pro potvrzený fraud.
