SaaS customer data import सुरक्षा: file validate करें और tenant अलग रखें
Tenant-bound staging, parser limits, strict validation, safe preview और atomic commit से SaaS CSV तथा spreadsheet imports सुरक्षित करें।
इस मार्गदर्शिका में
SaaS में customer data import कैसे सुरक्षित करें?
Data import आपके नियंत्रण से बाहर की file लेकर उसे product records में बदलता है। Requester और import scope authorize करें, uploaded object तथा processing job को एक tenant से बाँधें, सख्त limits में parse करें और customer data लिखने से पहले हर row validate करें। File upload सफल होना केवल यह बताता है कि file पहुँची; यह नहीं कि उसका content सुरक्षित या authorized है।
Import authorize करें और staging को उसी tenant तक सीमित रखें
Upload target देने या काम शुरू करने से पहले user का मौजूदा role, allowed record type और purpose जाँचें। File को private storage में opaque import ID से रखें, client-chosen path से नहीं। Tenant, requester और expiry साथ persist करें। Worker उस संबंध को फिर load और validate करे; file या queue message के tenant field पर भरोसा न करे।
केवल समर्थित formats और सुरक्षित parser size स्वीकारें
स्पष्ट format allowlist, byte और row limit, archive expansion, field length और processing timeout तय करें। Filename extension या browser Content-Type पर अकेले भरोसा न करें। जरूरत पर scan या quarantine करें, parser libraries patch रखें और risky parsing को सीमित worker में बिना अनावश्यक network access चलाएँ।
CSV और spreadsheet cell को data मानें, executable instruction नहीं
Import के दौरान formula, macro, external workbook link या embedded content evaluate न करें। Expected columns को value की तरह parse करें; जरूरत पर formula वाले unsupported format reject करें और preview में risky content escaped text के रूप में दिखाएँ। CSV quoting delimiter संभालता है, cell को execute या trust करने की अनुमति नहीं देता।
| Import type और उद्देश्य | Tenant/requester scope | Format और parser limits | Validation/preview नियम | Commit/rollback test owner |
|---|---|---|---|---|
| Contact या account records | ||||
| Bulk configuration | ||||
| Legacy system migration |
Imported rows कैसे validate और commit करें?
स्पष्ट schema और tenant ownership rules से validate करें
Required fields, data types, allowed values, date/number range, foreign-key relation और duplicates जाँचें। User, project और attachment जैसे references को उसी tenant में re-authorize करें; file का tenant ID किसी दूसरे customer के records चुनने न पाए। दूसरे customer के सुरक्षित record उजागर किए बिना row-level feedback दें।
Preview में warnings और होने वाले बदलाव साफ दिखाएँ
Commit से पहले counts, mapped fields, rejected rows और updates का असर दिखाएँ। Untrusted value को escape करें और imported HTML render न करें। बताएं existing records update, skip या duplicate होंगे; destructive या बड़े बदलाव पर confirmation माँगें।
Commit का व्यवहार स्पष्ट रखें और retry idempotent बनाएँ
तय करें कि import पूरी तरह all-or-nothing है या accepted rows के साथ error report देता है। जहाँ संभव हो transaction या staging-and-swap तरीका लें, हर write को authorized tenant से बाँधें और duplicate runs रोकने के लिए स्थिर import ID रखें। आधे में job fail हो तो दूसरे tenant का data मिलाए बिना resume या rollback कर सकें।
Import file, workers और audit records कैसे सुरक्षित रखें?
Staging artifacts तय समय पर delete करें
Source file, preview और rejected-row report की छोटी retention अवधि रखें; सफल process या expiry के बाद हटाएँ। Backup और temporary copy पर वही access तथा location policy लगाएँ। Failed import cleanup monitor करें ताकि abandoned bucket में sensitive file अनिश्चित समय तक न रहे।
Parser-worker access और resource consumption सीमित करें
Import worker को केवल staging area और जरूरी data operations तक access दें। Concurrency, memory, CPU, decompressed size, sheet count, row count और runtime सीमित करें ताकि malformed file shared capacity न घेर ले। बड़े batches के लिए per-tenant quota और queue fairness रखें।
Customer rows log किए बिना process audit करें
Import ID, tenant reference, actor, file digest, format, row counts, validation result, commit time और error category दर्ज करें। Raw file content, secret और personal data सामान्य logs से बाहर रखें। Detailed report access सीमित करें और बार-बार parser failure, बड़े imports या cross-tenant validation error पर alert दें।
SaaS customer import सुरक्षा के सवाल
क्या uploaded file scan करने से import सुरक्षित हो जाता है?
नहीं। Scanner एक control है। Import authorize करना, parser सीमित करना, fields और references validate करना, tenant scope बनाए रखना और failure सुरक्षित संभालना भी जरूरी है।
क्या import worker हर row में दिए tenant ID पर भरोसा करे?
नहीं। Job को server द्वारा चुने और authorize tenant से बाँधें। File का tenant value साधारण input मानें और mismatch को दूसरे tenant तक लिखने देने के बजाय reject करें।
क्या preview uploaded HTML सीधे दिखा सकता है?
नहीं। Imported value को escaped text की तरह render करें और markup, formula या embedded content execute न करें। Preview भी browser में untrusted input दिखाता है।
कुछ rows invalid हों तो बाकी import करनी चाहिए?
All-or-nothing या partial acceptance में से व्यवहार चुनकर स्पष्ट करें। दिखाएँ कौन-सी rows लिखेंगी, retry idempotent बनाएँ और failure या retry से duplicate तथा missing records का अस्पष्ट मिश्रण न बनने दें।
संबंधित व्यावहारिक मार्गदर्शिकाएँ
संबंधित मुद्दों की मार्गदर्शिकाएँ
स्रोत और प्रकाशन रिकॉर्ड
27 सितंबर 2026 को तैयार मसौदा; engineering, security और संपादकीय समीक्षा बाकी है · स्रोत जाँचे गए .
- OWASP Cheat Sheet: authorization
- OWASP Cheat Sheet: file upload
- AWS SaaS Lens: अलग tenants के बीच अनधिकृत access रोकना
- XML External Entity Prevention Cheat Sheet
- CSV Injection
- OWASP API Security Top 10: API3:2023 Broken Object Property Level Authorization
- OWASP Cross Site Scripting Prevention Cheat Sheet
- AWS SaaS Lens: multi-tenant SaaS की विश्वसनीयता का परीक्षण
- Amazon SQS Security Best Practices
- Amazon S3: Security Best Practices
- Digital Personal Data Protection Rules, 2025 (G.S.R. 846(E))
- OWASP Cheat Sheet: logging
- Security Best Practices in AWS CloudTrail