cdmguardservice
v0.1.5
Published
SaaS cloaker — npm middleware for Express, Fastify, and Next.js. Real money page hidden from bots; integrate in one line.
Maintainers
Readme
cdmguardservice
SaaS cloaker middleware — Express, Fastify, ve Next.js için tek satır entegrasyon. Bot/uyumsuz ziyaretçiler money page'i hiç göremez.
Kurulum
npm install cdmguardserviceHızlı başlangıç
- dashboard.cdmguardservice.com üzerinden hesap aç
/api-keys'den bir plaintext key mintle (sadece bir kez görünür — kopyala!)/campaigns/new'den bir kampanya kur (domain + safe URL + money URL + hedefleme)- Aşağıdaki snippet'i sunucunuza ekleyin
Express
import express from "express";
import { cdmguard } from "cdmguardservice";
const app = express();
app.use(
cdmguard({
apiKey: process.env.CDMGS_KEY!,
apiUrl: "https://api.cdmguardservice.com",
failMode: "closed", // closed (default) | open | cache_only
trustProxy: "cloudflare", // CF arkasındaysan ZORUNLU
timeout: 200,
}),
);
app.get("/", (req, res) => {
// Bot ve uyumsuz ziyaretçiler buraya hiç gelmez.
res.send("real money page");
});
app.listen(8080);Fastify
import Fastify from "fastify";
import { cdmguardPlugin } from "cdmguardservice/fastify";
const app = Fastify({ logger: true });
await app.register(cdmguardPlugin, {
apiKey: process.env.CDMGS_KEY!,
trustProxy: "cloudflare",
});
app.get("/", async () => "ok");
await app.listen({ port: 8080 });Next.js (middleware)
// middleware.ts
import { createMiddleware } from "cdmguardservice/next";
export default createMiddleware({
apiKey: process.env.CDMGS_KEY!,
trustProxy: "cloudflare", // ZORUNLU — Edge runtime'da socket IP yoktur
});
export const config = { matcher: "/:path*" };Options
| Option | Default | Notu |
|---|---|---|
| apiKey | zorunlu | Plaintext API key (/api-keys) |
| apiUrl | https://api.cdmguardservice.com | Decide endpoint |
| failMode | 'closed' | API timeout/outage davranışı |
| trustProxy | false | false | true | 'cloudflare' | 'aws-lb' | 'fastly' | string[] |
| timeout | 200 | Decide call max ms |
| edgeSecret | — | Edge sidecar varsa HMAC anahtarı |
| logger | console | Pino-uyumlu logger |
Nasıl çalışır?
ziyaretçi → user-app + cdmguardservice middleware
│
▼ POST /v1/decide
api.cdmguardservice.com (decide engine)
│
▼
{ decision, action, targetUrl, cookieValue }
│
├── allow → next() → REAL MONEY PAGE
└── block → 302 → safe URL (handler hiç çalışmaz)Detaylı mimari için Mimari ve Kavramlar.
Mobile cloaking (fake-mobile detection)
Antidetect tarayıcılar (AdsPower, Multilogin) masaüstünde mobile UA simüle eder. Mobile-only kampanyalarda visitor server-rendered ön-kontrolden geçer; geçmeyenler money page'i görmez.
Detay: Mimari → Fake Mobile Detection.
fail-mode
'closed'(default) — API ulaşılmazsa block synth (güvenli)'open'— API ulaşılmazsa allow synth (sadece düşük-riskli host'lar için)'cache_only'— Sadece HMAC cookie kontrol; API hiç çağrılmaz
trust-proxy uyarısı
Yanlış config = IP spoofing açıklığı. Cloudflare arkasındaysan 'cloudflare'; AWS LB ile 'aws-lb'; standalone Node ile false bırak.
Doğrulama
# Bot UA — safe URL'e 302 düşer
curl -is https://your-money-domain.com/ \
-H 'user-agent: python-requests/2.31.0'
# Gerçek browser UA — money page döner
curl -is https://your-money-domain.com/ \
-H 'user-agent: Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605'Dokümantasyon
Tam doc: dashboard.cdmguardservice.com/docs
- Hızlı Başlangıç
- Entegrasyon (tüm framework'ler)
- API Referansı
- Sorun Giderme
Lisans
Proprietary. Bu paketi kullanmak için aktif bir cdmguardservice aboneliği gereklidir. Detay: LICENSE.
