स्वीकृत इनपुट फ़ॉर्मैट
self-hosted Roboflow Inference server द्वारा स्वीकार किए जाने वाले input formats, और pickle किए गए numpy payloads तथा URL image fetching जैसे कम सुरक्षित विकल्पों को कैसे अक्षम करें।
यह क्यों महत्वपूर्ण है
Inference सर्वर को आसानी से इंटीग्रेट करने के लिए डिज़ाइन किया गया है, इसलिए कुछ सुविधाजनक लेकिन संभावित रूप से कम सुरक्षित डेटा-लोडिंग तरीके उपलब्ध हैं। प्रोडक्शन डिप्लॉयमेंट के लिए, कॉन्फ़िगरेशन विकल्प आपको उन व्यवहारों को अक्षम करने देते हैं।
यह पेज बताता है कि आपकी ज़रूरतों के अनुसार सर्वर को कैसे अधिक सुरक्षित बनाया जाए या अधिक लचीला व्यवहार कैसे सक्षम किया जाए।
पिकल किए गए numpy ऑब्जेक्ट्स का डीसिरियलाइज़ेशन
Inference सर्वर को अनुरोध भेजने का एक तरीका सीरियलाइज़ किए गए numpy ऑब्जेक्ट्स के साथ है:
import cv2
import pickle
import requests
image = cv2.imread("...")
img_str = pickle.dumps(image)
infer_payload = {
"model_id": "{project_id}/{model_version}",
"image": {
"type": "numpy",
"value": img_str,
},
}
res = requests.post(
"http://localhost:9001/infer/{task}",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json=infer_payload,
)संस्करण v0.14.0, इस payload प्रकार का डीसिरियलाइज़ेशन डिफ़ॉल्ट रूप से अक्षम है। आप इसे सेट करके सक्षम कर सकते हैं ALLOW_NUMPY_INPUT=True. देखें Inference CLI डॉक्स में देखें कि उस फ़्लैग के साथ सर्वर कैसे चलाया जाए। यह विकल्प Roboflow के होस्ट किए गए APIs में उपलब्ध नहीं है।
यदि सर्वर खुले इंटरनेट से आने वाले अनुरोधों के लिए खुला है, या केवल आपके workspace के API key से प्रमाणित अनुरोध स्वीकार करने के लिए लॉक डाउन नहीं है, तो प्रोडक्शन में इस विकल्प को सक्षम न करें।
इमेज inference के लिए URLs भेजना
URLs से इमेज फ़ेच करना सुविधाजनक है, लेकिन इससे सर्वर को server-side request forgery (SSRF) हमलों:
Inference अनुरोध में दिए गए URL से सीधे इमेज लोड कर सकता है ({"image": {"type": "url", "value": "https://..."}}). जब भी कोई सर्वर ऐसे URL को फ़ेच करता है जिसे कॉलर नियंत्रित करता है, तो कॉलर उसे अपनी ओर से अनुरोध करने के लिए मोड़ने की कोशिश कर सकता है; इस तरह के हमले को server-side request forgery (SSRF) कहा जाता है। जो व्यक्ति आपके internal network तक सीधे नहीं पहुँच सकता, वह आपके सर्वर से, उदाहरण के लिए, यह फ़ेच करने को कह सकता है:
http://169.254.169.254/latest/meta-data/, cloud metadata service (AWS, GCP, Azure), जो instance credentials वापस दे सकता है।http://127.0.0.1:9001/...और अन्य localhost सेवाएँ: admin panels, databases, या Inference सर्वर के अपने unauthenticated endpoints.http://10.0.0.5/,http://192.168.1.1/, और अन्य private (RFC1918), link-local, CGNAT, या IPv6 ULA hosts जो आपके perimeter के पीछे स्थित हैं।
सार्वजनिक दिखने वाला hostname सार्वजनिक target का प्रमाण नहीं है: यह private IP पर resolve हो सकता है, किसी private IP पर redirect हो सकता है, या DNS rebinding का उपयोग कर सकता है (validation check के लिए public IP पर resolve होकर, फिर वास्तविक connection के लिए private IP पर)। Inference इनमें से सभी के लिए नियंत्रण प्रदान करता है।
यदि आपको इसकी आवश्यकता नहीं है, तो URL input बंद करें
सबसे मजबूत नियंत्रण यह है कि URL images को बिल्कुल स्वीकार ही न करें। यदि आपके clients हमेशा images को base64 या file uploads के रूप में भेजते हैं, तो URL fetching को पूरी तरह अक्षम कर दें:
जब आपको इसकी आवश्यकता हो, तब URL input को अधिक सुरक्षित बनाएं
जब URL images की आवश्यकता होती है, तब ये flags सीमित करते हैं कि सर्वर क्या फ़ेच कर सकता है। साथ मिलकर ये internal targets को अस्वीकार करते हैं, connection को validated IP पर pin करते हैं (DNS rebinding को विफल करते हुए), और हर redirect hop को फिर से सत्यापित करते हैं।
ALLOW_URL_TO_NON_GLOBAL_ADDRESSES
WORKFLOWS_CUSTOM_PYTHON_EXECUTION_MODE
URL image input के लिए master switch। False सभी URL images को अस्वीकार करता है।
ALLOW_LOADING_IMAGES_FROM_LOCAL_FILESYSTEM
WORKFLOWS_CUSTOM_PYTHON_EXECUTION_MODE
Local filesystem से image loading को अक्षम करने के लिए इसे False पर सेट करें।
VALIDATE_IMAGE_URL_REDIRECTS
WORKFLOWS_CUSTOM_PYTHON_EXECUTION_MODE
जब False हो, तो ऐसा URL जिसका host non-global address (loopback, private, link-local/metadata, CGNAT, IPv6 ULA, आदि) पर resolve होता है, अस्वीकार कर दिया जाता है, और connection को validated IP पर pin किया जाता है ताकि दूसरा DNS answer target को बदल न सके।
, और अन्य) का दस्तावेज़ यहाँ है
MODEL_VALIDATION_DISABLED
जब True हो, तो redirects को एक-एक hop करके फ़ॉलो किया जाता है और हर hop URL को फिर से सत्यापित किया जाता है, बजाय इसके कि उन्हें बिना जाँच के फ़ॉलो किया जाए।
MAX_IMAGE_URL_REDIRECTS
30
Redirect hops पर कड़ी अधिकतम सीमा, ऊपर दिए गए flag की परवाह किए बिना लागू।
ALLOW_NON_HTTPS_URL_INPUT
MODEL_VALIDATION_DISABLED
जब False हो, तो केवल https:// URLs स्वीकार किए जाते हैं।
ALLOW_URL_INPUT_WITHOUT_FQDN
MODEL_VALIDATION_DISABLED
जब False हो, तो ऐसे URLs अस्वीकार किए जाते हैं जिनका host केवल bare IP हो या जिनका कोई public suffix न हो, इसलिए callers को वास्तविक domain name का उपयोग करना होगा।
WHITELISTED_DESTINATIONS_FOR_URL_INPUT
अनसेट
कॉमा से अलग की गई destinations की allow-list (subdomain.domain.suffix)। जब यह सेट हो, केवल इन्हीं की अनुमति होती है।
BLACKLISTED_DESTINATIONS_FOR_URL_INPUT
अनसेट
कॉमा से अलग की गई destinations की block-list, जिन्हें हमेशा अस्वीकार किया जाता है।
एक अधिक सुरक्षित कॉन्फ़िगरेशन जो फिर भी सार्वजनिक HTTPS image URLs की अनुमति देता है:
सबसे कड़े नियंत्रण के लिए, एक allow-list जोड़ें ताकि सर्वर केवल उन्हीं सटीक hosts तक पहुँच सके जिनसे आप images सर्व करते हैं:
Q4 2026 में दो डिफ़ॉल्ट बदल रहे हैं। VALIDATE_IMAGE_URL_REDIRECTS (को MODEL_VALIDATION_DISABLED) और , और अन्य) का दस्तावेज़ यहाँ है (को WORKFLOWS_CUSTOM_PYTHON_EXECUTION_MODE) वर्तमान में backward compatibility के लिए पुराने, permissive व्यवहार पर डिफ़ॉल्ट हैं। दोनों डिफ़ॉल्ट Q4 2026 में secure मानों पर बदलने के लिए निर्धारित हैं। अभी इन्हें स्पष्ट रूप से secure मानों पर सेट करें ताकि आप जल्दी opt in कर सकें, या यदि कोई Workflow वास्तव में internal URLs फ़ेच करने पर निर्भर है तो पुराने मानों पर सेट करें, ताकि यह बदलाव आपको चौंकाए नहीं।
सर्वर-साइड video sources के लिए, देखें STREAM_MANAGER_MAX_RAM_MB. वापस जाएँ सर्वर सुरक्षा नेटवर्क एक्सेस और प्रमाणीकरण के लिए
अंतिम अपडेट
क्या यह उपयोगी था?