CrawlForge MCP
Polisi

Mengesahkan Perangkak CrawlForge

Ada permintaan dalam log anda yang mengaku sebagai CrawlForge. Halaman ini menerangkan cara menyemak sama ada ia benar-benar kami, cara menyekatnya jika anda tidak mahu diambil halamannya, dan kepada siapa hendak menulis.

Padankan token, bukan keseluruhan rentetan Token produk CrawlForge adalah stabil. Versi selepasnya berubah pada setiap keluaran dan tidak sama pada kedua-dua permukaan kami, jadi peraturan yang ditulis terhadap rentetan User-Agent yang lengkap akan berhenti sepadan. Padankan tokennya — dan jika anda mahukan bukti dan bukan sekadar dakwaan, sahkan tandatangannya.

Bagaimana CrawlForge mengenalkan dirinya

Setiap halaman yang diambil CrawlForge diambil dengan satu User-Agent yang jujur: token produk CrawlForge, satu versi, dan satu URL hubungan. Tiada identiti kedua, tiada putaran identiti, dan tiada tetapan lalai yang menyamar sebagai pelayar — peraturan operasi perangkak menerangkan mengapa itu satu peraturan dan bukan sekadar pilihan.

CrawlForge berjalan pada dua permukaan dan kedua-duanya menghantar token ini: API REST terhos, dan pakej crawlforge-mcp-server yang dijalankan sendiri oleh pelanggan. Setiap satu menghantar versi pakejnya sendiri, jadi segmen versi berbeza mengikut permukaan dan mengikut keluaran, manakala tokennya tidak.

Corak User-Agent

Inilah yang disokong untuk dipadankan. Hanya segmen versi yang berubah.

User-Agent patternBash
CrawlForge/<version> (+https://crawlforge.dev)

Apa yang dihantar API terhos hari ini

Dijana daripada pemalar yang sama seperti yang dihantar perangkak, jadi halaman ini tidak boleh terpisah daripada pengepala sebenar. Ia ditunjukkan sebagai contoh, bukan sebagai rentetan untuk dipadankan: keluaran seterusnya akan mengubahnya. Pelayan MCP menghantar bentuk yang sama dengan versi pakejnya sendiri.

request headersBash
User-Agent: CrawlForge/1.0.0 (+https://crawlforge.dev)

Mengenal pasti kami dalam log anda

Padanan awalan pada token akan kekal berfungsi selepas setiap keluaran yang kami hantar.

matching us in your logsBash
# Match the product token. Anchored, and stopping at the slash, so the
# version cannot break the match on our next release.
^CrawlForge/

Token CrawlForge-Bot yang telah ditarik

Sesetengah alat kami dahulu mengenalkan diri sebagai CrawlForge-Bot. Tiada apa-apa lagi yang menghantar token itu — semuanya menghantar CrawlForge.

Namun ia masih dipatuhi sebagai sumber disallow. Menyatukan token itu akan menyahsekat secara senyap setiap pemilik tapak yang sudah menulis nama lama itu dalam robots.txt mereka, sedangkan itu ialah keputusan yang mereka buat tentang kami dan penukaran nama tidak berhak membuangnya. Kedua-dua token dirujuk dan satu disallow daripada mana-mana satu akan menang.

Jika robots.txt anda sudah menamakan token yang ditarik itu, anda tidak perlu mengubah apa-apa.

robots.txtBash
# Already in your file? Leave it — it still blocks us.
User-agent: CrawlForge-Bot
Disallow: /

Pengesahan kriptografi (Web Bot Auth)

User-Agent hanyalah satu dakwaan, dan sesiapa sahaja boleh menghantar milik kami. Sebab itu CrawlForge menandatangani permintaan keluarnya dengan Web Bot Auth: HTTP Message Signatures (RFC 9421) menggunakan kunci Ed25519 yang separuh awamnya kami terbitkan. Anda boleh mengesahkan sesuatu permintaan tanpa menghubungi kami dan tanpa senarai benarkan.

Kedua-dua permukaan menandatangani. Setiap permintaan yang ditandatangani membawa Signature-Input (komponen yang dilindungi dan parameter tandatangan), Signature (tandatangan Ed25519, base64), dan Signature-Agent (URL direktori yang menerbitkan kunci kami).

Tandatangan itu melindungi authority yang dituju oleh permintaan tersebut — serta nilai Signature-Agent apabila ia diiklankan. Ia membuktikan permintaan itu datang daripada pemegang kunci persendirian kami. Ia tidak melindungi laluan, badan permintaan, mahupun User-Agent, jadi anggaplah ia bukti tentang *siapa*, bukan tentang *apa yang diminta*.

Direktori tandatangan kami

Satu set kunci JSON, disajikan sebagai application/http-message-signatures-directory+json dan boleh dicache selama sehari. Perhatikan bentuk jamak pada signatures.

the signature directoryBash
curl -sS https://www.crawlforge.dev/.well-known/http-message-signatures-directory

Pengepala yang kami hantar

Senarai parameter itu disirikan oleh fungsi yang sama yang menandatangani permintaan kami. Nilai dalam kurungan sudut berubah bagi setiap permintaan. Selesaikan `keyid` terhadap direktori dan jangan menetapkannya secara tegar — ia ialah cap jari kunci dan berubah apabila kami memutarkannya.

request headersBash
Signature-Input: sig1=("@authority" "signature-agent");created=1787788800;keyid="<keyid — look it up in the directory>";alg="ed25519";expires=1787789100;nonce="<64 random bytes, base64>";tag="web-bot-auth"
Signature: sig1=:<base64 Ed25519 signature>:
Signature-Agent: "https://www.crawlforge.dev"

Mengesahkan sesuatu permintaan

Bina semula asas tandatangan daripada permintaan yang anda terima, kemudian semak ia terhadap kunci yang diterbitkan. Modul crypto terbina dalam Node sudah memadai; mana-mana pengesah RFC 9421 melakukan perkara yang sama.

verify.mjsJavascript
import { createPublicKey, verify } from 'node:crypto';

// `request` is the request you received; `signatureInput` and `signature`
// are its Signature-Input and Signature header values.

// 1. Fetch the directory and index the published keys by their thumbprint.
const { keys } = await fetch(
  'https://www.crawlforge.dev/.well-known/http-message-signatures-directory'
).then((r) => r.json());

// 2. Read the parameters off Signature-Input, dropping the "sig1=" label.
const params = signatureInput.replace(/^[^=]+=/, '');
const keyid = /keyid="([^"]+)"/.exec(params)?.[1];
const published = keys.find((k) => k.kid === keyid);
if (!published) throw new Error('keyid is not in the directory — not us');

// 3. Rebuild the signature base from the request you received. The covered
//    components are listed in the parentheses at the start of params.
const covered = /^\(([^)]*)\)/.exec(params)[1];
const lines = [`"@authority": ${request.headers.host}`];
if (covered.includes('"signature-agent"')) {
  lines.push(`"signature-agent": ${request.headers['signature-agent']}`);
}
lines.push(`"@signature-params": ${params}`);

// 4. Verify the Ed25519 signature (base64, between the colons).
const key = createPublicKey({
  key: { kty: 'OKP', crv: 'Ed25519', x: published.x },
  format: 'jwk',
});
const bytes = Buffer.from(
  signature.replace(/^[^=]+=:/, '').replace(/:$/, ''),
  'base64'
);
const ok = verify(null, Buffer.from(lines.join('\n'), 'utf8'), key, bytes);

// 5. Finally, reject a stale signature: params carries created= and expires=,
//    and we sign with a five-minute window.
Permintaan tanpa tandatangan bukan permintaan yang disahkan Jika sesuatu mendakwa membawa User-Agent kami tetapi tiada tandatangan — atau tandatangan yang tidak lulus pengesahan — maka bagi anda ia bukan CrawlForge, dan anda bebas melayannya sedemikian. Beritahu kami di support@crawlforge.dev dan kami akan mengesahkan sama ada trafik itu milik kami.

Menyekat CrawlForge

Satu peraturan robots.txt merangkumi semuanya. Nama kumpulannya ialah token produk, yang dipadankan oleh kedua-dua permukaan, jadi ini menyekat setiap alat CrawlForge pada kedua-duanya.

Tambahkan ini pada robots.txt anda. Ia berkuat kuasa pada pengambilan berikutnya — kami membaca fail itu sekali bagi setiap asalan pada permulaan setiap perangkakan.

robots.txtBash
User-agent: CrawlForge
Disallow: /

Apa yang tidak akan kami sembunyikan daripada anda

robots.txt dipatuhi secara lalai pada setiap alat pengambilan. Seorang pelanggan juga boleh menghantar respect_robots: false pada satu permintaan — pengecualian itu wujud, ia didokumenkan, dan ia disengajakan: sesetengah pelanggan mempunyai perjanjian mereka sendiri dengan tapak yang mereka ambil, dan memaksa keputusan itu ke bawah tanah hanya menjadikannya tidak kelihatan, bukan jarang berlaku.

Ia tidak senyap. Pengecualian itu terpakai pada satu permintaan sahaja, tidak sekali-kali pada satu akaun atau pada produk. Respons membawa amaran bahawa ia telah digunakan, dan permintaan itu direkodkan di pihak pelayan sebagai catatan robots_override bersama URL, nama alat dan id dalaman kunci API yang memintanya — bukan kunci itu sendiri — supaya pengambilan yang dipertikaikan boleh dijejaki kembali kepada pelanggan yang memilihnya.

Di bawah semua ini terdapat penarikan diri di peringkat platform yang tidak dapat dicapai oleh sebarang parameter. Jika satu peraturan robots.txt tidak mencukupi bagi anda, gunakan saluran penarikan diri sebaliknya.

Alamat IP keluar

Kami tidak menerbitkan senarai alamat IP keluar hari ini. API terhos kami dan backend pelayar kami berjalan di atas infrastruktur pihak ketiga, dan sehingga kami boleh berpegang pada julat yang masih tepat bulan hadapan, menerbitkan satu julat akan lebih buruk daripada tidak menerbitkan apa-apa — senarai benarkan yang dibina atas julat yang sudah lapuk akan menolak trafik sebenar dan terbuka kepada semua orang lain. Apabila ada senarai yang boleh kami pertahankan, ia akan muncul dalam bahagian ini.

Walau apa pun, pengesahan tandatangan ialah semakan yang lebih kukuh. Julat alamat hanya membuktikan dari mana satu paket itu datang, dan sesiapa yang mampu menyewa alamat dalam julat itu mewarisi dakwaan yang sama; penampal biasa bagi masalah itu — carian DNS songsang di atasnya — membuktikan kawalan ke atas satu nama hos, bukan ke atas permintaan itu. Tandatangan Ed25519 membuktikan pemilikan kunci persendirian yang separuh awamnya berada dalam direktori kami, ia kekal sah walaupun kami bertukar hos, dan ia tidak boleh dimain semula pada authority yang lain.

Jika tandatangan masih tidak memadai untuk pengaturan komersial di pihak anda, e-mel support@crawlforge.dev dan nyatakan apa yang anda perlukan.

Penarikan diri dan permintaan penurunan kandungan

Untuk ditarik keluar di peringkat platform — secara kekal, merentas setiap alat, setiap kunci API dan setiap pelan, tanpa sebarang parameter pelanggan yang boleh mengatasinya — e-mel support@crawlforge.dev dengan domain dan halaman yang berkenaan. Alamat yang sama mengendalikan permintaan penurunan kandungan dan sebarang pertanyaan tentang trafik yang anda percaya datang daripada kami.

Berkaitan
Apa yang CrawlForge lakukan apabila ia mengambil halaman, dan terma yang menghadap pelanggan.
Peraturan Operasi Perangkak
Lapan peraturan asas di sebalik halaman ini, sebab bagi setiap satu, dan cara ia dikuatkuasakan.
Polisi Penggunaan Boleh Terima
Apa yang pelanggan boleh dan tidak boleh lakukan dengan API: aktiviti terlarang, penguatkuasaan, pelaporan.
Polisi Privasi
Apa yang kami kumpulkan, dan berapa lama kami menyimpannya.

Footer

CrawlForge MCP

Web scraping gred perusahaan untuk Ejen AI. 29 alat MCP khusus yang direka untuk pembangun moden yang membina sistem pintar.

Produk

  • Ciri
  • Playground
  • Harga
  • Kes Penggunaan
  • Integrasi
  • Alternatif
  • Changelog

Sumber

  • Mula Bekerja
  • Rujukan API
  • Templat
  • Panduan
  • Blog
  • Glosari
  • Soalan Lazim
  • Peta Laman

Pembangun

  • Protokol MCP
  • Claude Desktop
  • Cursor IDE
  • LangChain
  • LlamaIndex

Syarikat

  • Tentang
  • Hubungi
  • Privasi
  • Terma
  • Penggunaan Boleh Diterima
  • Cookies

Kekal dikemas kini

Dapatkan kemas kini terkini tentang alat dan ciri baharu.

Dibina dengan Next.js dan protokol MCP

© 2025-2026 CrawlForge. Hak cipta terpelihara.