আমি কীভাবে একটি এএসপি.নেট সেশন কুকিতে নিরাপদ পতাকা সেট করতে পারি?


146

আমি কীভাবে একটি এএসপি.নেট সেশন কুকিতে সুরক্ষিত পতাকাটি সেট করতে পারি, যাতে এটি কেবল এইচটিটিপিএসের মাধ্যমে এবং কখনও কখনও সরল এইচটিটিপি-র মাধ্যমে প্রেরণ করা যায়?

উত্তর:


127

দুটি উপায় আছে, একটি httpCookiesউপাদান web.configআপনাকে এটি চালু করার অনুমতি দেয় requireSSLযা কেবলমাত্র এসএসএলে সেশন সহ সমস্ত কুকিজ কেবল প্রেরণ করে এবং ভিতরে প্রমাণীকরণ ফর্ম করে তবে আপনি যদি এইচএসপি'র উপর এসএসএল চালু করেন তবে আপনাকে অবশ্যই এটির ভিতরে ফর্ম কনফিগারেশনটি চালু করতে হবে।

স্বচ্ছতার জন্য সম্পাদনা করুন: এটিকে রাখুন<system.web>

<httpCookies requireSSL="true" />

13
+1 স্পষ্ট করে বলতে গেলে, <httpCookies requireSSL="true" />
লেখকের

8
মনে রাখবেন এটি আপনার (সার্ভার-স্তর) কনফিগারেশনের উপর নির্ভর করে। আমি ত্রুটিটি দিয়ে টেস্ট অঞ্চলটিকে নীচে এনেছি "অ্যাপ্লিকেশনটি সুরক্ষিত কুকিজ ইস্যু করার জন্য কনফিগার করা হয়েছে These এই কুকিগুলির জন্য এসএসএল (https প্রোটোকল) এর মাধ্যমে অনুরোধটি প্রেরণ করার জন্য ব্রাউজারের প্রয়োজন However তবে, বর্তমান অনুরোধটি এসএসএল-এর উপরে নয়" " এটি কারণ আমাদের জায়গায় একটি বিপরীত প্রক্সি রয়েছে এবং ব্রাউজারগুলি এসএসএলের মাধ্যমে এটিতে সংযুক্ত রয়েছে তবে আইআইএস সার্ভারে বিপরীত প্রক্সিটি পোর্ট ৮০ এরও বেশি, সুতরাং অ্যাপ্লিকেশনটি এটি সুরক্ষিত বলে মনে করেনি।
mlhDev

4
@ বরগিট্টা আমরা অ্যাপ্লিকেশন_প্রেসেন্ডরেক্সেস্ট হাইডার্স ইভেন্টটি পরিচালনা করেছি এবং যদি কোনও নির্দিষ্ট অ্যাপ্লিকেশন সেটিংস সত্য হয় তবে আমরা সমস্ত কুকি সুরক্ষিত রাখতে সেট করি । এই অ্যাপ্লিকেশন সেটিংসটি কেবলমাত্র আমাদের এইচটিটিপিএস বাহ্যিক সাইটগুলির জন্য সেট করা আছে।
mlhDev

আমি দেখতে পাচ্ছি, সুতরাং আপনার সমস্ত বাহ্যিক সাইট এইচটিটিপিএস ব্যবহার করবে, ধন্যবাদ।
বারগিটটা

আমি অন্য কোথাও দেখতে পেলাম যে আইআইএস system সিস্টেমের পরে.ভেস্ট সিস্টেম.ওয়েবার্সার দ্বারা প্রতিস্থাপন করা হয়েছিল, তাই আমি এই সেটিংটি সেখানে রাখার চেষ্টা করেছি। আইআইএস 8.5-তে এটি একটি কনফিগার ত্রুটির কারণ হয়েছিল, তবে আমি যদি কনফিগার ফাইলে একটি system.web বিভাগ যুক্ত করে সেটিংসটি সেখানে রেখে দিই তবে এটি সমস্ত কাজ করে।
ইবোরবব

181

ইন <system.web>উপাদান, নিম্নলিখিত উপাদান যোগ করুন:

<httpCookies requireSSL="true" />

তবে, আপনার যদি <forms>আপনার system.web\authenticationব্লকের কোনও উপাদান থাকে , তবে এটি সেটিংসটিকে ওভাররাইড httpCookiesকরে ডিফল্টে ফিরিয়ে আনবে false

যে ক্ষেত্রে, আপনি যোগ করতে হবে requireSSL="true"পাশাপাশি ফর্ম উপাদানে অ্যাট্রিবিউট।

সুতরাং আপনার সাথে শেষ হবে:

<system.web>
    <authentication mode="Forms">
        <forms requireSSL="true">
            <!-- forms content -->
        </forms>
    </authentication>
</system.web>

এই উপাদানগুলির এমএসডিএন ডকুমেন্টেশনের জন্য এখানে এবং এখানে দেখুন ।


2
আপনি 'লকআইটেম' বৈশিষ্ট্যটি অন্তর্ভুক্ত করে আপনার <httpCookiesSSL = "সত্য" /> সেটিংকে ওভার রাইড করে অন্য ওয়েবকনফিগ সেটিংস এড়াতে পারবেন। ভালো লেগেছে: <httpCookies এসএসএল = "সত্য" লকআইটেম = "সত্য" /> প্রয়োজন require এখানে আরও তথ্য dotnetnoob.com/2010/11/how-to-secure-aspnet-cookies.html
জেটেক

1
তদতিরিক্ত, যদি কোনও roleManagerউপাদান থাকে তবে এর বৈশিষ্ট্যটিও cookieRequireSSL="true"সত্য হিসাবে সেট করা উচিত। সূত্র। msdn.microsoft.com/en-us/library/…
জেফ মার্জারার

সম্পর্কিত ফাইলগুলিতে উপরের পরিবর্তনগুলি যুক্ত করে, সেশন অবজেক্টগুলি আমার অ্যাপ্লিকেশনটিতে কাজ করছে না, তারা বাতিল হয়ে যাচ্ছে। তাহলে আমি কীভাবে এই সমস্যাটিকে সংশোধন করতে পারি?
সত্য

আপনি কি নিজের অ্যাপের জন্য এইচটিটিপি বা এইচটিটিপিএস ব্যবহার করছেন? আমরা এখানে যে "সুরক্ষিত" পতাকাটি সেট করছি সেটি নন-এনক্রিপ্ট করা (যেমন HTTP) সংযোগের মাধ্যমে কুকিজ প্রেরণ করা রোধ করে
মার্টিন ইডেন

21

আপনি যদি কোনও এন্টারপ্রাইজ পরিবেশে চেক-ইন কোডের কথা বলছেন তবে জিনিসগুলি দ্রুত অগোছালো হয়ে যায়। আমরা লক্ষ্য করেছি যে শ্রেষ্ঠ পদ্ধতির আছে হয় web.Release.config নিম্নলিখিত রয়েছে:

<system.web>
  <compilation xdt:Transform="RemoveAttributes(debug)" />
  <authentication>
      <forms xdt:Transform="Replace" timeout="20" requireSSL="true" />
  </authentication>
</system.web>

এইভাবে, বিকাশকারীরা প্রভাবিত হয় না (ডিবাগে চলমান), এবং কেবলমাত্র সার্ভারগুলি যে রিলিজ বিল্ডগুলি পায় তারা এসএসএল হওয়ার জন্য কুকিজের প্রয়োজন।


^^^ এই the উপায় আরও তথ্যের পুনরায়: ওয়েব.কনফিগ রূপান্তর: go.microsoft.com/fwlink/?LinkId=125889
জেফ

0

সুরক্ষিত - এই বৈশিষ্ট্যটি ব্রাউজারকে কেবল কুকি পাঠাতে বলে যদি অনুরোধটি সুরক্ষিত চ্যানেল যেমন এইচটিটিপিএসের মাধ্যমে প্রেরণ করা হয়। এটি কুকিটিকে এনক্রিপ্ট না করা অনুরোধগুলির মাধ্যমে পাস করা থেকে রক্ষা করতে সহায়তা করবে। যদি অ্যাপ্লিকেশনটি এইচটিটিপি এবং এইচটিটিপিএস উভয়ের মাধ্যমে অ্যাক্সেস করা যায় তবে কুকিটি স্পষ্ট পাঠ্যে প্রেরণ করা যায় এমন সম্ভাবনা রয়েছে।


0

@ মার্ক ডি এর উত্তরের ভিত্তিতে আমি বিভিন্ন কুকিজ সিকিউরে সেট করতে ওয়েবকনফিগ রূপান্তর ব্যবহার করব। এর মধ্যে রয়েছে সেটিং anonymousIdentification cookieRequireSSLএবং httpCookies requireSSL

সে লক্ষ্যে আপনি আপনার ওয়েব সেটআপ করতে চান e

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
    <httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
    <anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" /> 
  </system.web>
</configuration>

আপনি যদি ASP.NET Membership Provider(আমি জানি এটি প্রাচীন) এর সাথে ভূমিকা ও ফর্ম প্রমাণীকরণ ব্যবহার করে থাকেন তবে আপনি এছাড়াও roleManager cookieRequireSSLএবং forms requireSSLবৈশিষ্ট্যগুলিকে সুরক্ষিত হিসাবে সেট করতে চাইবেন । যদি তা হয় তবে আপনার ওয়েব.রেলিজ.কমফাইগটি দেখতে দেখতে (সদস্যতার API এর জন্য উপরে নতুন প্লাগগুলি অন্তর্ভুক্ত করা হয়েছে):

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
    <httpCookies xdt:Transform="SetAttributes(httpOnlyCookies)" httpOnlyCookies="true" />
    <httpCookies xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
    <anonymousIdentification xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" /> 
    <roleManager xdt:Transform="SetAttributes(cookieRequireSSL)" cookieRequireSSL="true" />
    <authentication>
        <forms xdt:Transform="SetAttributes(requireSSL)" requireSSL="true" />
    </authentication>
  </system.web>
</configuration>

ওয়েবকনফিগের পটভূমি এখানে রূপান্তরিত করে: http://go.microsoft.com/fwlink/?LinkId=125889

স্পষ্টতই এটি ওপি-র মূল প্রশ্নের অতিক্রম করে চলেছে তবে আপনি যদি এগুলি সমস্ত সুরক্ষিত করার জন্য সেট না করেন তবে আপনি আশা করতে পারেন যে কোনও সুরক্ষা স্ক্যানিংয়ের সরঞ্জামটি নজরে আসবে এবং আপনি প্রতিবেদনে লাল পতাকাগুলি দেখতে পাবেন। আমি জানি কিভাবে জিজ্ঞাসা করুন। :)

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