Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
token-proxy — LLM API ट्रैफ़िक के लिए एक पारदर्शी PII रिडक्शन प्रॉक्सी। एक एप्लिकेशन और एक LLM प्रदाता (वर्तमान में Anthropic) के बीच बैठता है, बाहर जाने वाले संवेदनशील डेटा को छद्मनाम करता है और अंदर आने पर इसे पुनर्स्थापित करता है। FastAPI + httpx के साथ निर्मित। | Kitploit
उपकरण/GitHubGitHub/zolderio/token-proxy
रक्षात्मक उपकरणएन्क्रिप्शन/डिक्रिप्शन उपकरणडेटा निष्कासनक्लाउड सुरक्षागोपनीयताखतरा खुफियाAPI सुरक्षाAI सुरक्षालॉग विश्लेषण
GitHubzolderio/token-proxy

token-proxy

LLM API ट्रैफ़िक के लिए एक पारदर्शी PII रिडक्शन प्रॉक्सी। एक एप्लिकेशन और एक LLM प्रदाता (वर्तमान में Anthropic) के बीच बैठता है, बाहर जाने वाले संवेदनशील डेटा को छद्मनाम करता है और अंदर आने पर इसे पुनर्स्थापित करता है। FastAPI + httpx के साथ निर्मित।

28114 महीने पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

llm-token-proxy

एक पारदर्शी PII रिडक्शन प्रॉक्सी जो LLM API ट्रैफ़िक के लिए है। यह आपके एप्लिकेशन और LLM प्रदाता के बीच बैठता है, बाहर जाते समय संवेदनशील डेटा को छद्मनामीकृत करता है और वापस आते समय उसे पुनर्स्थापित करता है।

आपका LLM कभी भी वास्तविक नाम, ईमेल, IP, या डोमेन नहीं देखता — यह पूरी तरह से संरचित छद्मनामों जैसे [email protected] के साथ काम करता है। आपका एप्लिकेशन मूल मानों को पारदर्शी रूप से वापस प्राप्त करता है।

क्यों

जब LLMs का उपयोग सुरक्षा संचालन, घटना प्रतिक्रिया, या वास्तविक ग्राहक डेटा से जुड़े किसी कार्य के लिए किया जाता है, तो आप तृतीय-पक्ष APIs को PII भेजने का जोखिम उठाते हैं। यह प्रॉक्सी इसे इस प्रकार हल करता है:

  • वास्तविक PII को नियतात्मक, संरचित छद्मनामों से बदलना, इससे पहले कि वह LLM तक पहुंचे
  • प्रतिक्रिया में मूल मानों को पुनर्स्थापित करना, इससे पहले कि वह आपके एप्लिकेशन तक पहुंचे
  • एक सत्र के भीतर संगति बनाए रखना (एक ही इनपुट हमेशा उसी छद्मनाम पर मैप होता है)
  • पारदर्शी रूप से काम करना — आपके एप्लिकेशन में कोई कोड परिवर्तन की आवश्यकता नहीं

त्वरित आरंभ

root@kitploit:~
# 1. Create your config
cp config.json.example config.json
# Edit config.json with your internal domains, known entities, etc.

# 2. Run with Docker
docker build -t llm-token-proxy .
docker run -p 8090:8080 -v ./config.json:/app/config.json llm-token-proxy

# 3. Point your application at the proxy
export ANTHROPIC_BASE_URL=http://localhost:8090/session/my-session/

बस इतना ही। आपके Anthropic API कॉल अब PII रिडैक्टेड होकर प्रॉक्सी के माध्यम से जाते हैं।

यह कैसे काम करता है

टोकन प्रॉक्सी विशिष्ट प्रवाह

विशिष्ट प्रवाह: एप्लिकेशन → टोकन प्रॉक्सी (PII रिडक्शन) → LLM API (केवल छद्मनाम) → टोकन प्रॉक्सी (मूल मानों को पुनर्स्थापित करें) → एप्लिकेशन

डिटेक्शन पाइपलाइन (3 पास)

  1. Regex — ईमेल, IP पते, डोमेन, और कॉन्फ़िग-संचालित पैटर्न (ज्ञात व्यक्ति, संगठन, होस्टनाम)
  2. NER — spaCy नामित इकाई पहचान उन व्यक्ति और संगठन के नामों को पकड़ता है जो regex से छूट जाते हैं
  3. उपयोगकर्ता नाम निष्कर्षण — बेयर ईमेल स्थानीय भाग (जैसे, [email protected] से admin)

छद्मनाम प्रारूप

छद्मनाम एक सत्र के भीतर नियतात्मक होते हैं — वही वास्तविक मान हमेशा उसी छद्मनाम पर मैप होता है।

संदर्भ-संरक्षण IP छद्मनामीकरण

जब कोई LLM सुरक्षा लॉग का विश्लेषण कर रहा होता है, तो IP पते का होस्टिंग प्रदाता और भू-स्थान मायने रखता है — जर्मनी में Hetzner IP से लॉगिन अमेरिका में एक आवासीय ISP से लॉगिन से भिन्न कहानी बताता है। दस्तावेज़ीकरण-श्रेणी के IPs (जैसे, 198.51.100.x) से निष्प्रभावी प्रतिस्थापन इस संदर्भ को नष्ट कर देता है।

वैकल्पिक MaxMind GeoLite2-ASN डेटाबेस के साथ, प्रॉक्सी वास्तविक IP को उसी ASN और सबनेट से एक अलग IP से बदल देता है। LLM एक वास्तविक दिखने वाला IP देखता है जो उसी होस्टिंग प्रदाता और अनुमानित भूगोल को हल करता है — लेकिन यह वास्तविक पता नहीं है।

  • Hetzner IP उसी प्रीफ़िक्स के दूसरे Hetzner IP से बदल दिया जाता है
  • Cloudflare IP Cloudflare IP ही रहता है
  • आंतरिक/RFC1918 IP हमेशा 10.99.99.x पर मैप होते हैं (कोई ASN संदर्भ संरक्षित नहीं करना)
  • GeoIP डेटाबेस के बिना, बाहरी IP 198.51.100.x (दस्तावेज़ीकरण श्रेणी) पर फॉलबैक होते हैं

दाता IP एक प्रति-सत्र नमक के साथ HMAC के माध्यम से नियतात्मक रूप से चुना जाता है, इसलिए एक ही वास्तविक IP हमेशा एक सत्र के भीतर उसी दाता पर मैप होता है, लेकिन विभिन्न सत्र अलग-अलग मैपिंग उत्पन्न करते हैं।

कॉन्फ़िगरेशन

प्रॉक्सी एक खाली config.json के साथ आता है — कोई अंतर्निहित शब्द सूची या डोमेन-विशिष्ट धारणाएँ नहीं। शामिल config.json.example को Microsoft Sentinel और Entra ID के साथ सुरक्षा संचालन के लिए ट्यून किया गया है (8,000+ KQL तालिका/स्तंभ नाम, Graph API अनुमति शर्तें, सुरक्षा संदर्भ डोमेन)। यदि वह आपके उपयोग के मामले से मेल खाता है, तो उसमें से वह कॉपी करें जो आपको चाहिए। यदि आप किसी भिन्न डोमेन (स्वास्थ्य देखभाल, कानूनी, वित्त, आदि) के लिए प्रॉक्सी का उपयोग कर रहे हैं, तो खाली कॉन्फ़िग से शुरू करें और अपनी स्वयं की सूचियाँ बनाएँ।

config.json

root@kitploit:~
{
  "internal_domains": ["yourcompany.com"],
  "partner_domains": ["partnercorp.com"],
  "internal_ip_ranges": ["10.0.0.0/8", "172.16.0.0/12", "192.168.0.0/16"],
  "known_persons": ["John Smith"],
  "known_orgs": ["YourCompany"],
  "known_hostnames": ["DC01", "FS01"],
  "ner_enabled": true,
  "ner_skiplist": [],
  "redaction_enabled": true
}
  • internal_domains — डोमेन जो "आंतरिक" के रूप में वर्गीकृत हैं (_internal_ छद्मनाम प्राप्त करते हैं)
  • partner_domains — डोमेन जो "भागीदार" के रूप में वर्गीकृत हैं
  • internal_ip_ranges — आंतरिक IP वर्गीकरण के लिए CIDR श्रेणियाँ
  • known_persons/orgs/hostnames — regex-मिलान इकाइयाँ (गारंटीड डिटेक्शन)
  • ner_enabled — spaCy NER टॉगल (spacy + en_core_web_sm आवश्यक)
  • ner_skiplist — शब्द जो NER मॉडल को अनदेखा करने चाहिए (गलत सकारात्मक कम करता है)
  • redaction_enabled — मास्टर टॉगल; जब false होता है, तो प्रॉक्सी शुद्ध पास-थ्रू बन जाता है
  • pseudonymize_domains — जब false होता है, तो डोमेन बिना संशोधित पास होते हैं (ईमेल, IP, नाम अभी भी रिडैक्टेड होते हैं)। उपयोगी जब डोमेन नाम LLM के लिए महत्वपूर्ण संदर्भ रखते हैं (जैसे, outlook.com को protonmail.com से अलग करना) और संवेदनशील नहीं माने जाते।

पर्यावरण चर

रनटाइम कॉन्फ़िगरेशन API

पुनरारंभ किए बिना श्वेतसूची प्रबंधित करें और रिडक्शन टॉगल करें:

root@kitploit:~
# View all whitelists
curl http://localhost:8090/token-proxy/config/whitelist

# Add terms to NER skiplist (reduces false positives)
curl -X POST http://localhost:8090/token-proxy/config/whitelist \
  -H "Content-Type: application/json" \
  -d '{"category": "ner_skiplist", "values": ["EvoSTS", "Hetzner"]}'

# Add domains to allowlist (never pseudonymize these)
curl -X POST http://localhost:8090/token-proxy/config/whitelist \
  -H "Content-Type: application/json" \
  -d '{"category": "domain_allowlist", "values": ["github.com"]}'

# Disable redaction (pass-through mode)
curl -X POST http://localhost:8090/token-proxy/config/status \
  -H "Content-Type: application/json" \
  -d '{"redaction_enabled": false}'

श्वेतसूची श्रेणियाँ: ner_skiplist, domain_allowlist, known_persons, known_orgs, known_hostnames

ऑडिट और निरीक्षण API

प्रॉक्सी वास्तविक समय में क्या कर रहा है, इसका निरीक्षण करें:

root@kitploit:~
# List active sessions
curl http://localhost:8090/token-proxy/sessions

# View pseudonym mappings for a session
curl http://localhost:8090/token-proxy/sessions/{session_id}/mappings

# View redaction activity log
curl http://localhost:8090/token-proxy/sessions/{session_id}/log

# Search mappings
curl http://localhost:8090/token-proxy/sessions/{session_id}/search?q=admin

# View captured payloads (what the LLM actually saw)
curl http://localhost:8090/token-proxy/sessions/{session_id}/payloads

# Token usage for a session (input/output tokens across all requests)
curl http://localhost:8090/token-proxy/sessions/{session_id}/usage

# Global statistics (includes total_tokens across all sessions)
curl http://localhost:8090/token-proxy/stats

टोकन उपयोग ट्रैकिंग

प्रॉक्सी प्रत्येक अनुरोध के लिए input_tokens और output_tokens रिकॉर्ड करता है जिसे वह अग्रेषित करता है — दोनों नॉन-स्ट्रीमिंग (प्रतिक्रिया usage ऑब्जेक्ट से पढ़ा गया) और स्ट्रीमिंग (message_start और message_delta SSE इवेंट से पार्स किया गया)। क्योंकि प्रॉक्सी आपके एप्लिकेशन और LLM के बीच बैठता है, आपको इसे साझा करने वाले सभी क्लाइंट्स में खपत मापने के लिए एक एकल चोकपॉइंट मिलता है, बिना प्रत्येक को इंस्ट्रूमेंट किए।

root@kitploit:~
curl http://localhost:8090/token-proxy/sessions/my-session/usage
# {
#   "session_id": "my-session",
#   "request_count": 3,
#   "input_tokens": 1240,
#   "output_tokens": 587
# }

curl http://localhost:8090/token-proxy/stats | jq .total_tokens
# { "input_tokens": 48213, "output_tokens": 19044 }

प्रति-अनुरोध उपयोग भी /token-proxy/sessions/{session_id}/log में usage_counts के अंतर्गत शामिल है। केवल कच्ची टोकन गणना ट्रैक की जाती है — मूल्य निर्धारण कॉलर पर छोड़ दिया जाता है।

स्ट्रीमिंग समर्थन

प्रॉक्सी SSE स्ट्रीमिंग (stream: true) का समर्थन करता है। छद्मनामों को टेल-बफ़र दृष्टिकोण का उपयोग करके वास्तविक समय में पुनर्स्थापित किया जाता है जो SSE चंक्स में विभाजित छद्मनामों को संभालता है।

प्रदाता समर्थन जोड़ना

प्रॉक्सी एक प्रदाता अनुकूलक पैटर्न का उपयोग करता है। वर्तमान में समर्थन करता है:

  • Anthropic Messages API (/v1/messages)

अतिरिक्त प्रदाताओं (OpenAI, Google Gemini, आदि) के लिए समर्थन कैसे जोड़ें, यह देखने के लिए CONTRIBUTING.md देखें।

सीमाएँ

  • केवल टेक्स्ट — प्रॉक्सी API अनुरोध/प्रतिक्रिया में JSON टेक्स्ट फ़ील्ड को स्कैन करता है। इमेज, PDF, और अन्य बाइनरी सामग्री (जैसे, विज़न अनुरोधों में base64-एन्कोडेड अटैचमेंट) बिना रिडक्शन के पास हो जाती हैं। यदि आपका वर्कफ़्लो PII वाले स्क्रीनशॉट या दस्तावेज़ भेजता है, तो वे बिना संशोधित LLM तक पहुँचेंगे।
  • NER केवल अंग्रेज़ी है — spaCy मॉडल (en_core_web_sm) अंग्रेज़ी व्यक्ति/संगठन नामों का पता लगाता है। अन्य भाषाओं के नाम छूट सकते हैं जब तक कि कॉन्फ़िग में known_persons/known_orgs में न जोड़े जाएँ।
  • Regex में अंधे धब्बे हैं — असामान्य प्रारूपों में PII (जैसे, अस्पष्ट ईमेल जैसे admin [at] acme.com, फ़ोन नंबर, भौतिक पते) नहीं पकड़े जाएंगे। डिटेक्शन पाइपलाइन संरचित IT/सुरक्षा डेटा के लिए ट्यून की गई है।
  • मेमोरी में सत्र — सत्र मैपिंग मेमोरी में रहती हैं और पुनरारंभ पर खो जाती हैं। कोई स्थायी भंडारण नहीं है। सत्र 2 घंटे के बाद स्वतः हटा दिए जाते हैं।
  • केवल Anthropic — वर्तमान में एक Anthropic Messages API अनुकूलक के साथ आता है। अन्य प्रदाताओं (OpenAI, Google Gemini) के लिए एक प्रदाता अनुकूलक लिखना आवश्यक है (देखें CONTRIBUTING.md)।
  • प्रबंधन APIs पर कोई प्रमाणीकरण नहीं — /token-proxy/config/* और /token-proxy/sessions/* एंडपॉइंट्स में कोई प्रमाणीकरण नहीं है। प्रॉक्सी विश्वसनीय/आंतरिक नेटवर्क के लिए डिज़ाइन किया गया है — इन एंडपॉइंट्स को अविश्वसनीय नेटवर्क में उजागर न करें।

विकास

root@kitploit:~
# Install dev dependencies
pip install -e ".[dev,ner]"
python -m spacy download en_core_web_sm

# Run tests
pytest

# Lint
ruff check token_proxy/ tests/

लाइसेंस

Apache 2.0 — देखें LICENSE।

टूल डाउनलोड करें
इकाई प्रकारआंतरिक उदाहरणबाहरी उदाहरण
ईमेल[email protected][email protected]
डोमेनdomain-internal-001.comdomain-external-001.net
IP10.99.99.1 (RFC1918)ASN-जागरूक दाता IP (नीचे देखें)
व्यक्तिperson_internal_001person_external_001
संगठनorg_internal_001org_external_001
होस्टनामhost_001host_001
चरडिफ़ॉल्टउद्देश्य
ANTHROPIC_API_BASEhttps://api.anthropic.comअपस्ट्रीम Anthropic API URL
TOKEN_PROXY_CONFIG_PATH/app/config.jsonकॉन्फ़िग फ़ाइल का पथ
LOG_LEVELinfoलॉगिंग स्तर
GEOIP_ASN_DB_PATH/app/data/GeoLite2-ASN.mmdbMaxMind GeoLite2-ASN डेटाबेस (वैकल्पिक)