ব্যবহারকারীদের কাছ থেকে ফাইল গ্রহনের প্রক্রিয়া সুবিধাজনক কিন্তু যদি সঠিকভাবে ডিজাইন না করা হয়, তবে এটি গুরুতর দুর্বলতায় পরিণত হতে পারে। আক্রমণকারীরা আপলোডকে অপব্যবহার করে ইচ্ছাকৃত কোড বাস্তবায়ন, সার্ভার ক্ষমতা হ্রাস করা, অবৈধ ফাইল বিতরণ ইত্যাদির চেষ্টা করে।
প্রধান হুমকিগুলি নিম্নরূপ:
প্রতিরোধের মৌলিক মূলনীতি হল "বহুস্তরের প্রতিরক্ষা (defense in depth)"। একটি প্রতিরোধে নির্ভর না হয়ে, একাধিক প্রতিরক্ষামূলক স্তর তৈরি করা কার্যকর।
অনুমোদিত এক্সটেনশনগুলি সীমাবদ্ধ করুন এবং গ্রহণযোগ্যতা কেবলমাত্র এক্সটেনশন দ্বারা নির্ধারণ করবেন না। ফাইলের স্বাক্ষর (ম্যাজিক নম্বর) যাচাই করুন এবং এর বিষয়বস্তু যাচাই করুন। Content-Type শিরোনামকে বিশ্বাস করবেন না, দ্বৈত এক্সটেনশন বা NULL বাইটের মতো প্রতিরোধ পদ্ধতি বাস্তবায়ন করুন।
ব্যবহারকারীরা দেওয়া ফাইলনাম সরাসরি সংরক্ষণ করবেন না। UUID বা হ্যাশ+টাইমস্ট্যাম্প ইত্যাদির মাধ্যমে অনন্য নাম পরিবর্তন করুন, এবং মূল ফাইলের নাম মেটাডেটা হিসেবে আলাদাভাবে সংরক্ষণ করুন। বিশেষ অক্ষর এবং দৈর্ঘ্যের সীমা নিরীক্ষণ করুন।
আপলোড করা ফাইলগুলি ওয়েবরুটের বাইরেও সংরক্ষণ করুন যাতে সেগুলি সরাসরি বাস্তবায়ন না হয় তা নিশ্চিত। সম্ভব হলে, বিশেষ বস্তু স্টোরেজে (যেমন: S3) সংরক্ষণ করুন এবং অ্যাপ্লিকেশন মারফত ডাউনলোড লিংক জারি করুন। সংরক্ষণ ফোল্ডারে কার্যকর অধিকার প্রদান করবেন না এবং পড়া ও লেখার সর্বনিম্ন অধিকার নির্ধারণ করুন।
ফাইলের আকারের সর্বাধিক সীমা নির্ধারণ করুন এবং একযোগে আপলোড সংখ্যা এবং রেট নিয়ন্ত্রণ প্রদান করুন, যাতে পরিষেবার ব্যবহারযোগ্যতা নিশ্চিত হয়। যেখানে সংকুচিত ফাইল (ZIP ইত্যাদি) গ্রহণ করা হয়, সেখানেও ব্যাখ্যার পর প্রতিটি ফাইল পরীক্ষা করা আবশ্যক।
আপলোডের পরপরই ভাইরাস স্ক্যান (যতটা সম্ভব একাধিক ইঞ্জিন) চালান এবং PDF/Office ইত্যাদি ক্ষেত্রে CDR (Content Disarm & Reconstruct) দ্বারা অলঙ্ঘন করুন। ছবিগুলিকে পুনরায় এনকোড করুন (পড়া→নতুন ফাইল সৃষ্টি) এবং বিধবৃত্তাকার অবৈধ তথ্য অপসারণ করা কার্যকর।
যোগাযোগে সর্বদা TLS (HTTPS) সুরক্ষিত করুন এবং CSRF টোকেন ইত্যাদির মতো প্রতিরোধ পদ্ধতি বাস্তবায়ন করুন। ডাউনলোড প্রতিক্রিয়াতে Content-Disposition: attachment
এবং X-Content-Type-Options: nosniff
যুক্ত করুন, যাতে ব্রাউজারের ভুল কার্যকারিতা প্রতিরোধ হয়।
কে, কখন, কোন ফাইল পরিচালনা করেছে তা বিস্তারিতভাবে লগ হিসেবে রক্ষা করুন এবং অস্বাভাবিক আচরণের (অতিরিক্ত দ্রুত আপলোড বা বিপুল পরিমাণ অস্বীকৃতি) জন্য সতর্কতা সেট করুন। ফাইলের সঙ্গতি বজায় রাখার জন্য হ্যাশ রাখা কার্যকর।
বাস্তবায়নের পর, ফাইল আপলোডের জন্য বিশেষজ্ঞ দুর্বলতা পরীক্ষার (শেল ইনসার্টশন, এক্সটেনশন এড়ানো, পথ-ক্রসিং ইত্যাদি) বাস্তবায়ন করুন এবং সময়ে সময়ে পুনর্বিবেচনা করুন।
এখানে পরিচিত UploadF(uploadf.com) সুবিধা প্রদান করে — PC/মোবাইল উভয়ের জন্য, ড্র্যাগ অ্যান্ড ড্রপ, 100 ফাইল একত্রে আপলোডের মতো সুবিধার সাথেই, পরিষেবা ডিজাইন অন্বেষণের জন্য নিচের মতো কিছু সতর্কতা ও কৌশল দেওয়া যেতে পারে।
চেক আইটেম | বাস্তবায়ন/যাচনা যুক্ত পয়েন্ট |
---|---|
এক্সটেনশন হোয়াইটলিস্ট সীমাবদ্ধতা | প্রয়োজনীয় ফর্ম্যাটের জন্য অনুমতি। ব্ল্যাকলিস্ট সহায়ক হিসেবে ব্যবহার করুন। |
MIME/স্বাক্ষর পরীক্ষা | এক্সটেনশন এবং বিষয়বস্তু মেলে কি না যাচাই করুন (ম্যাজিক নম্বর যাচাই)। |
ফাইল নাম পুনঃনামকরণ | UUID বা হ্যাশ নামের সাথে প্রতিস্থাপন করুন এবং মূল নাম মেটাডেটাতে পরিচালনা করুন। |
বিশেষ অক্ষর মুছুন | `/`, `\`, `..`, NULL ইত্যাদির মুছা বা অস্বীকার। |
সঞ্চয়স্থান নির্দেশিকা | ওয়েব রুটের বাইরের বা বস্তু স্টোরেজে সংরক্ষণ করুন। |
ফোল্ডার অধিকার | কার্যকর নিষিদ্ধ, সর্বনিম্ন পড়া ও লেখা অধিকার (principle of least privilege)। |
সর্বাধিক/সর্বনিম্ন ফাইল সাইজ | সীমার প্রকাশ এবং ZIP ইত্যাদির পরবর্তী পরীক্ষা। |
একযোগে আপলোড নিয়ন্ত্রণ | সমবায় সংখ্যা সীমাবদ্ধ, রেট নিয়ন্ত্রণ, টাইমআউট সেটিং। |
ভাইরাস স্ক্যান / CDR | আপলোডের সাথে সাথে স্ক্যান এবং প্রয়োজন অনুযায়ী অলঙ্ঘন প্রক্রিয়া। |
যোগাযোগ এনক্রিপশন (HTTPS) | TLS বাধ্যতামূলক (মধ্যবর্তী আক্রমণ প্রতিরোধের জন্য)। |
CSRF প্রতিরোধ | টোকেন ভিত্তিক পরীক্ষা বাস্তবায়িত করুন। |
প্রতিক্রিয়া শিরোনাম সেটিং | Content-Disposition: attachment , X-Content-Type-Options: nosniff যুক্ত করুন। |
লগিং এবং সতর্কতা | আপলোড কর্মগুলিকে নিরীক্ষণ করুন এবং অস্বাভাবিক সময়ে সতর্কতা দিন। |
নিয়মিত নিরাপত্তা পুনর্বিবেচনা | দুর্বলতা পরীক্ষা ও পেনেট্রেশন সময়ে সময়ে বাস্তবায়ন করুন। |
পুরোনো ফাইলের স্বয়ংক্রিয় মুছে ফেলা | রক্ষণের সময়সীমা অতিক্রম হলে সম্পূর্ণ মুছে ফেলার ডিজাইন। |
অ্যাক্সেস নিয়ন্ত্রণ/অনুমোদন | ব্যবহারকারী একক/গোষ্ঠী ভিত্তিক অ্যাক্সেস অধিকার কঠোরভাবে পরিচালনা করুন। |
ফাইল আপলোডের কার্যক্রম সুবিধা এবং ঝুঁকির উভয়ই রাখে।本文で示した多層防御(ホワイトリスト、シグネチャ検査、保存場所の分離、マルウェア対策、ログ監査など)を設計に取り入れることで攻撃リスクは大幅に低下します。
ব্যবহারকারীদের "সহজে ব্যবহারযোগ্য এবং নিরাপদ" হিসাবে অনুভব করতে দেওয়ার জন্য উপস্থাপনা গুরুত্বপূর্ণ। উদাহরণস্বরূপ, UploadF(uploadf.com) এর মতো পৃথক মুছে ফেলা বা সংরক্ষণের সময় নির্ধারণের মতো ব্যবহারকারীরা পরিচালনা করতে পারেন, এই ধরনের পরিষেবাগুলি নিরাপত্তার একটি অনুভূতি সৃষ্টি করতে পারে।
※ উপরেরটি নিবন্ধ তৈরি করার সময়ের উদাহরণ হিসাবে। বিস্তারিত বাস্তবায়ন ডকুমেন্টেস এবং সর্বশেষ হুমকি তথ্য জানতে তাদের অফিসিয়াল ডকুমেন্ট দেখুন।