একটি HTTP প্রতিক্রিয়া শিরোনামে বিষয়বস্তু-স্বভাবের ব্যবহার


127

আমি একটি ডাটাবেস থেকে ফাইল পরিবেশন করার সময় নিম্নলিখিত asp.net কোডটি খুব দরকারী বলে খুঁজে পেয়েছি:

Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);

এটি ব্যবহারকারীকে ফাইলটি তাদের কম্পিউটারে সংরক্ষণ করতে এবং তারপরে এটি ব্যবহার করার সিদ্ধান্ত নিতে দেয়, পরিবর্তে ব্রাউজারটি ফাইলটি ব্যবহার করার চেষ্টা করছে।

বিষয়বস্তু-স্বভাবের প্রতিক্রিয়া শিরোনাম দিয়ে আর কী কী করা যায়?


23
নোট করুন যে যদি ফাইলের নামটিতে সাদা স্থান বা অ-এএসসিআইআই অক্ষর থাকে তবে আপনার নমুনা কোডটি ভেঙে যাবে। আরও তথ্যের জন্য আরএফসি 6266 দেখুন।
জুলিয়ান রেসকে

@ জুলিয়ানআরশকে, এএসসিআইআই অক্ষরগুলি কী যে মুদ্রণযোগ্য হিসাবে বিবেচিত হয়? ( 0থেকে 0x1F)
পেসারিয়ার

আরএফসি 6266 পড়ুন (এগুলি বাদ দিয়ে তারা কোনও ফাইলের নাম ব্যবহার করা খারাপ ধারণা হতে পারে; প্রাপকরা তাদের যে কোনও উপায়ে ফেলে দিতে পারে)
জুলিয়ান রেসকে

1
যদি আপনি নামের চারপাশে ডাবল উদ্ধৃতি ব্যবহার করেন তবে আপনি সাদা স্থান, ইউনিকোড ইত্যাদি ব্যবহার করতে পারেন। kb.mozillazine.org/…
টনি বেনব্রাহিম

1
নিবন্ধন করুন
divy3993

উত্তর:


84

নোট করুন যে আরএফসি 6266 নীচে উল্লিখিত আরএফসিগুলিকে ছাড়িয়েছে। ধারা 7 সম্পর্কিত সুরক্ষা সংক্রান্ত কিছু উদ্বেগের রূপরেখা দেয়।

বিষয়বস্তু- ডিসপোশন শিরোনামের কর্তৃত্ব হ'ল আরএফসি 1806 এবং আরএফসি 2183 People লোকেরা বিষয়বস্তু-প্রদর্শন হ্যাকিংও তৈরি করেছে এটি লক্ষ করা গুরুত্বপূর্ণ যে বিষয়বস্তু-অবস্থানের শিরোনাম HTTP 1.1 মানের অংশ নয়।

এইচটিটিপি 1.1 স্ট্যান্ডার্ড ( আরএফসি 2616 ) বিষয়বস্তু প্রদর্শনের সম্ভাব্য সুরক্ষা পার্শ্ব প্রতিক্রিয়ার কথাও উল্লেখ করেছে:

15.5 বিষয়বস্তু-নিষ্পত্তি সংক্রান্ত সমস্যা

আরএফসি 1806 [35], যা থেকে প্রায়শই বাস্তবায়িত সামগ্রী-বিভাজন
(বিভাগ 19.5.1 দেখুন) HTTP- র শিরোনামটি উত্পন্ন হয়েছে, এর বেশ কয়েকটি
গুরুতর সুরক্ষা বিবেচনা রয়েছে। সামগ্রী-বিভাজন
এইচটিটিপি স্ট্যান্ডার্ডের অংশ নয় , তবে এটি যেহেতু ব্যাপকভাবে প্রয়োগ করা হয়েছে, আমরা এর
ব্যবহার এবং প্রয়োগকারীদের জন্য ঝুঁকিগুলি নথিভুক্ত করছি ।
বিশদের জন্য আরএফসি 2183 [49] দেখুন (যা আরএফসি 1806 আপডেট করে)।


31
আজকাল, কর্তৃপক্ষটি আরএফসি 6266
জুলিয়ান পুনরায় পোস্ট করুন

@ জুলিয়ানআরস্কে, "সুপারসিডেস" এবং "আপডেট" কীভাবে কাজ করে? আরএফসি 7230 এর মতো নতুন সংস্করণগুলি কি আরএফসি 6266 কে অপ্রচলিত হিসাবে উপস্থাপন করে?
পেসারিয়ার

@ পেসারিয়র - আরএফসি 7230 কেন আরএফসি 6266 কে প্রভাব ফেলবে?
জুলিয়ান রিচকে

@ জুলিয়ান, ১) 6266 আপডেটের পর থেকে 2616, 2) 2616 723X দ্বারা অপ্রচলিত করা হয়েছে, 3) তারপরে, 6266 এছাড়াও অপ্রচলিত হিসাবে বিবেচিত হয়?
পেসারিয়ার

5
ঠিক আছে, এখানে আরএফসি 5678, সেখানে আরএফসি 9876। যদি বিষয়বস্তু-বিভ্রান্তির বিষয়টি ভ্রান্ত হয় তবে এর পরিবর্তে আমাদের কী ব্যবহার করা উচিত?
সিএসবা তোথ

25

ঠিক আছে, দেখে মনে হচ্ছে বিষয়বস্তু-বিশৃঙ্খলা শিরোনামটি মূলত ওয়েবে নয়, ই-মেইলের জন্য তৈরি হয়েছিল। ( প্রাসঙ্গিক আরএফসির লিঙ্ক )

আমি অনুমান করছি যে ওয়েব ব্রাউজারগুলি এর প্রতিক্রিয়া জানাতে পারে

Response.AppendHeader("content-disposition", "inline; filename=" + fileName);

সংরক্ষণ করার সময়, তবে আমি নিশ্চিত নই



5

এ্যাসপ নেট ব্যবহারকারীদের জন্য .NET ফ্রেমওয়ার্কটি একটি বিষয়বস্তু প্রদর্শন শিরোনাম তৈরির জন্য একটি শ্রেণী সরবরাহ করে: System.Net.Mime.ContentDisposition

বেসিক ব্যবহার:

var cd = new System.Net.Mime.ContentDisposition();
cd.FileName = "myFile.txt";
cd.ModificationDate = DateTime.UtcNow;
cd.Size = 100;
Response.AppendHeader("content-disposition", cd.ToString());

1
সাবধান, এই শ্রেণিটি আরএফসি 6266 এর সাথে খাপ খায় না । এটি আরএফসি 5987 এনকোডিং সহ প্যারামিটারটি filenameব্যবহার না করে প্যারামিটারে ইউটিএফ -8 বেস64 এনকোডিং করে । এটি ঠিক করার জন্য এফএক্স ব্যবহারের উপায় বা ব্যবহারের কোনও উপায় নেই, প্রায় সমস্ত কিছুই অ-ওভারডেবল বা অভ্যন্তরীণ ...। নেট এফএক্সের এখনও উন্মুক্ততা এবং এক্সটেনসিবিলিটি শেখার দীর্ঘ পথ রয়েছে। এমভিসি ৫.২-তে ক্লাসের জন্য কিছুটা ভাল করা যায় , তবে অন্যকে প্যারামিটারগুলি হ্যান্ডল করে না এবং এর বেশিরভাগ বাস্তবায়নও অভ্যন্তরীণ ...filename*FileResultfilenameinline
ফ্রেডেরিক

2

এই শিরোনামটি আরএফসি 2183 - সংজ্ঞায়িত করা হয়েছে , সুতরাং এটি পড়া শুরু করার পক্ষে সেরা জায়গা।

অনুমোদিত মানগুলি হ'ল ইন্টারনেট অ্যাসাইনড নাম্বার অথরিটি (আইএএনএ) এর সাথে নিবন্ধিত; তাদের মূল্যবোধের রেজিস্ট্রি অবশ্যই সংক্ষিপ্ত উত্স হিসাবে দেখা উচিত।


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.