Is AliVoice - Get AliExpress Invoice & Receipt safe?
AliVoice redirects matching AliExpress pages through affiliate deep links and sends the page URL to alisavetools.com.
When an AliExpress item, cart, product, or order page loads, AliVoice checks remote configuration from alisavetools.com and posts the current page URL to its deeplink endpoint. If enabled, it navigates the tab to a returned redirect URL or to an AliExpress affiliate deep link that includes the target page URL.
AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.
Publishers can request a review.
Findings
Remote-Config-Gated Affiliate Redirect on AliExpress Product Pages
Opening an AliExpress item, cart, product, or order page makes AliVoice's worker check alisavetools.com.
If enabled, it sends the page URL there, gets an affiliate deep-link back, and redirects your tab, replacing any existing affiliate ID.
- Severity
- Medium unwanted
- Type
- Unexpected
- CWE
- CWE-506
- Source
- Dynamic sandbox
You open an AliExpress item, cart, product, or order-detail page.
AliVoice sends the page URL to its own server and redirects your tab through an AliExpress affiliate link before it finishes loading.
No AliVoice UI is open and no button is clicked. The redirect only occurs when the extension's remote configuration server returns an enabled flag.
{"success":true,"redirect_url":"https://s.click.aliexpress.com/deep_link.htm?aff_short_key=_omjsoRl&dl_target_url=https%3A%2F%2Fwww.aliexpress.com%2Fitem%2F1005006109293633.html"}
- Content-Type
- application/json
{ "url": "https://www.aliexpress.com/item/1005006109293633.html"}The matching and redirect logic, from the extension's shipped service worker.
Deciding which tabs to intercept, and firing the redirect (annotated)
// True only for AliExpress item/cart/product/order-detail pages.function isAliExpressTarget(url) { const u = new URL(url); const okHost = u.hostname.endsWith("aliexpress.com") || u.hostname.endsWith("aliexpress.us") || u.hostname.endsWith("aliexpress.ru"); const path = u.pathname.toLowerCase(); return okHost && ( path.includes("/item/") || path.includes("/shopcart/") || path.includes("/product/") || path.includes("/product-detail/") || path.includes("/order_detail.htm") );}// Runs on every tab navigation. Redirects the tab BEFORE the page finishes// loading, as soon as the remote config says the affiliate program is on.async function maybeRedirect(tabId, changeInfo, tab) { if (changeInfo.status !== "loading") return; if (!isAliExpressTarget(tab.url)) return; const cfg = await getConfig(); // fetch alisavetools.com/config if (!cfg.enabled || !cfg.aff_short_key) return; // gate: server must opt this tab in // Skip if AliVoice's own affiliate key is already on the URL (already redirected). // A DIFFERENT vendor's affiliate key on the URL does NOT stop the redirect. if (tab.url.includes(cfg.aff_short_key)) return; const deep = await buildDeepLink(tab.url); // sends the URL out, gets a new one back if (deep.ok) await chrome.tabs.update(tabId, { url: deep.url });}Sending the page URL out and building the deep link (annotated)
// Drops the query string (and any existing affiliate params in it) before// re-wrapping the bare page URL in AliVoice's own affiliate link.function stripToBase(url) { const u = new URL(url); u.hash = ""; u.search = ""; // any prior affiliate tag lived here — discarded return u.toString();}// POSTs the current page URL to alisavetools.com and gets back an// AliExpress affiliate deep-link carrying AliVoice's aff_short_key.async function buildDeepLink(originalUrl) { const data = await fetchJSON(`${API_BASE}/deeplink`, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ url: originalUrl }) }); if (data.success && data.redirect_url) return { ok: true, url: data.redirect_url }; // Fallback: build the affiliate link locally from the cached config. const cfg = await getConfig(); if (cfg.enabled && cfg.aff_short_key) { const base = stripToBase(originalUrl); return { ok: true, url: `https://s.click.aliexpress.com/deep_link.htm?aff_short_key=${cfg.aff_short_key}&dl_target_url=${encodeURIComponent(base)}` }; } return { ok: false };}- alisavetools.com
Not an AliExpress domain. Receives the AliExpress page URL via POST /wp-json/alivoice/v1/deeplink, and controls whether the redirect fires via GET .../v1/config.
- s.click.aliexpress.com
AliExpress's own affiliate deep-link redirector. The extension routes your tab through it with an affiliate ID chosen by alisavetools.com, replacing any ID already on the URL.
Logs the config check, the outbound URL POST, and the resulting tab redirect in real time so you can watch the round trip happen on an AliExpress product page.
- Chrome with Developer mode enabled
- AliVoice - Get AliExpress Invoice & Receipt installed
// alivoice-redirect-monitor.js// Paste into the AliVoice service worker's DevTools console, then navigate// to a matching AliExpress URL in another tab. Logs each step of the// config-check -> URL POST -> tab-redirect chain as it happens.(function () { const origFetch = self.fetch; self.fetch = async function (input, init) { const url = typeof input === "string" ? input : input.url; if (url.includes("alisavetools.com/wp-json/alivoice/v1/config")) { console.log("[ALIVOICE_MONITOR] config check ->", url); } if (url.includes("alisavetools.com/wp-json/alivoice/v1/deeplink")) { console.log("[ALIVOICE_MONITOR] page URL sent to deeplink endpoint, body:", init && init.body); } const res = await origFetch.call(this, input, init); if (url.includes("/deeplink")) { res.clone().json().then((data) => console.log("[ALIVOICE_MONITOR] deeplink response:", data) ).catch(() => {}); } return res; }; const origUpdate = chrome.tabs.update; chrome.tabs.update = function (tabId, updateProps, ...rest) { if (updateProps && updateProps.url) { console.log("[ALIVOICE_MONITOR] tab", tabId, "redirected to:", updateProps.url); } return origUpdate.call(this, tabId, updateProps, ...rest); }; console.log("[ALIVOICE_MONITOR] installed. Open a matching AliExpress URL (path containing /item/, /shopcart/, /product/, /product-detail/, or /order_detail.htm) in another tab.");})();- 1Install AliVoice.
- 2Open chrome://extensions, enable Developer mode.
- 3Click 'service worker'.
- 4Paste this script into DevTools console.
- 5In another tab, open an AliExpress product/cart/order URL.
- 6Watch the console log.
What it can do
Permissions this extension asks for, as declared in version 3.0.3. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to.
Read and change your data on aliexpress.com
*://*.aliexpress.com/*
Read and change your data on aliexpress.ru
*://*.aliexpress.ru/*
Read and change your data on aliexpress.us
*://*.aliexpress.us/*
Read and change your data on alibaba.com
*://*.alibaba.com/*
Read and change your data on alisavetools.com
*://*.alisavetools.com/*
Store data in your browser
storage
Act on the current tab, but only after you click the extension
activeTab
See the address and title of every tab you have open
tabs
Start, monitor and manage your downloads
downloads
Where it sends data
Destinations our analysis observed AliVoice - Get AliExpress Invoice & Receipt contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.
- s.click.aliexpress.com
AliVoice - Get AliExpress Invoice & Receipt sends data to s.click.aliexpress.com. 24 other extensions we have analysed send data here.
- alisavetools.com
AliVoice - Get AliExpress Invoice & Receipt sends data to alisavetools.com. No other extension we have analysed sends data here.