বর্তমানের অনুশীলনগুলি সেশনগুলি


84

কারও কাছে রেল এবং সেশনের জন্য কোনও "সেরা অনুশীলন" টিপস রয়েছে? রেল 3 এর জন্য ডিফল্ট সেশনের ধরণটি কি এখনও কুকিস্টোর, তাই না? আমি কিছুক্ষণ স্কেলসেশনস্টোর ব্যবহার করেছি এবং এটি ভাল কাজ করেছে, তবে আমি কুকিস্টোরের পক্ষে এটি থেকে সরে যেতে পারি।

সংশ্লেষিত তথ্যের জন্য কুকি স্টোর ব্যবহার করা কি এখনও ভাল ধারণা নয়, এমনকি সল্টযুক্ত তথ্যের সাথেও বা এটি ডিবিতে আরও ভালভাবে সঞ্চিত রয়েছে?


4
এছাড়াও, সেশন স্টোরেজের জন্য মেমক্যাচ ব্যবহারের চারপাশে বর্তমান চিন্তাভাবনাগুলি কী?
লুকাস

উত্তর:


102

কুকি-ভিত্তিক ডিফল্টের পরিবর্তে সেশনের জন্য ডেটাবেস ব্যবহার করুন, যা অত্যন্ত গোপনীয় তথ্য সঞ্চয় করতে ব্যবহার করা উচিত নয়

এর সাথে সেশন টেবিলটি তৈরি করুন

rake db:sessions:create

মাইগ্রেশন চালান

rake db:migrate

আপনার সেশনগুলি পরিচালনা করার জন্য আপনি রেলগুলিও অ্যাক্টিভেকর্ড ব্যবহার করতে বলেছেন তা নিশ্চিত করুন।

রেল 3

কনফিগার / ইনিশিয়ালাইজার / সেশন_স্টোর.আরবি:

Rails.application.config.session_store :active_record_store

রেল 2

কনফিগারেশন / পরিবেশ.আরবি:

config.action_controller.session_store = :active_record_store

4
আমি সর্বশেষে শুনলাম আর্স্টোর সেশনের জন্য খুব ধীর ছিল। কেউ কি বেঞ্চমার্ক সম্পর্কে জানেন?
লুকাস

4
আপনি যদি সেশন সারণীর বৃদ্ধি দেখেন এবং সেই অনুযায়ী ছাঁটাই করার জন্য কোনও কাজ সেটআপ করেন তবে আপনার কার্য সম্পাদনের সমস্যা থাকবে না have
বিল লিপার

4
এই বিচক্ষণতার সাথে কি বিবাদ?
ডেভিড মৌরিসিও

4
এখানে, 3..২ এর কান্ড, এটি TheNameOfMy অ্যাপ্লিকেশন :: অ্যাপ্লিকেশন। কনফিগ.অ্যাসিওশন_স্টোর: সক্রিয়_আরকর্ড_স্টোর
এডুয়ার্ডো

4
rake db:sessions:createঅনুমোদিত নয় এবং পাগল 4 মুছে, কারণ এটি অনেক ব্যবহারকারীদের সাথে অ্যাপ্লিকেশনের জন্য ভাল স্কেল না (অনেকগুলি ডাটাবেসের সার্চ লিখেছেন)। রেলগুলি দেখুন 4.0, রেক ডিবি: সেশন: তৈরি করুন

53

কিলসটি কারাগুলি 4 এ ডিফল্টরূপে এনক্রিপ্ট করা আছে

4 রেলগুলিতে , কুকিস্টোর কুকিগুলি এনক্রিপ্ট করা হয় এবং ডিফল্টরূপে স্বাক্ষরিত হয়:

আপনি যদি কেবল secret_tokenসেট করে রেখেছেন তবে আপনার কুকিজ স্বাক্ষরিত হবে, তবে এনক্রিপ্ট করা হবে না। এর অর্থ কোনও ব্যবহারকারী user_idআপনার অ্যাপের গোপন কীটি না জেনে তাদের পরিবর্তন করতে পারবেন না , তবে সহজেই সেগুলি পড়তে পারেনuser_id । এটি রেল 3 অ্যাপ্লিকেশনগুলির জন্য ডিফল্ট ছিল।

যদি তোমার থাকে secret_key_base সেট করে রেখেছেন তবে আপনার কুকিগুলি এনক্রিপ্ট করা হবে। এটি এনক্রিপ্ট হওয়া কুকিজগুলিতে স্বাক্ষরিত কুকিজগুলির চেয়ে আরও এক ধাপ এগিয়ে যায় এবং ব্যবহারকারীরা পরিবর্তন বা পড়া যায় না। এটি রেল 4 এ শুরু হওয়া ডিফল্ট is

যদি আপনার উভয়ই থাকে secret_tokenএবং secret_key_baseসেট থাকে তবে আপনার কুকিগুলি এনক্রিপ্ট করা হবে এবং রেল 3 দ্বারা উত্পাদিত স্বাক্ষরিত কুকিজগুলি স্বচ্ছভাবে পড়া হবে এবং মসৃণ আপগ্রেডের পথ সরবরাহ করতে এনক্রিপ্ট করা হবে।

অ্যাক্টিভ রেকর্ড সেশন স্টোরটি কারা 4-এ অবনতিযুক্ত

এই উত্তরটি এখন 4 রেলগুলির ক্ষেত্রে পুরানো is

  • rake db:sessions:create

  • rails generate session_migration

এটি এই উত্তরে নির্দেশিত হয়েছিল । অ্যাক্টিভ রেকর্ড সেশন স্টোরকে অবহেলিত করার কারণ হ'ল এই ব্লগ পোস্টে যেমন বলা হয়েছে আপনার বিপুল সংখ্যক ব্যবহারকারী আপনার অ্যাপ্লিকেশন অ্যাক্সেস করছেন তখন ডাটাবেসগুলিতে পঠন / লেখাগুলি ভাল স্কেল হয় না :

... অ্যাক্টিভ রেকর্ড সেশন স্টোরের সাথে একটি বড় সমস্যা হ'ল এটি স্কেলযোগ্য নয়। এটি আপনার ডাটাবেসে একটি অপ্রয়োজনীয় বোঝা রাখে। আপনার অ্যাপ্লিকেশনটি প্রচুর পরিমাণে ট্র্যাফিক পেয়ে গেলে, সেশনস ডাটাবেস টেবিলটি নিয়মিত পঠন / লেখার কার্যক্রমে বোমাবর্ষণ করা হয়।

রেলস 4 হিসাবে, সক্রিয় রেকর্ড সেশন স্টোরটি মূল কাঠামো থেকে সরানো হয়েছে এবং এখন হ্রাস করা হয়েছে।

আপনি যদি এখনও সক্রিয় রেকর্ড সেশন স্টোরটি ব্যবহার করতে চান তবে এটি এখনও রত্ন হিসাবে উপলব্ধ

বর্তমান রেল সেশন সেরা অভ্যাস

রেল অন রেলে সেশনগুলির জন্য আরও সেরা সেরা অনুশীলনের জন্য, আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি রিল অন ​​রেলস সুরক্ষা নির্দেশিকার সর্বশেষতম সংস্করণটি পরীক্ষা করে দেখুন ।


9

আমি বিশ্বাস করি না যে কোনও প্ল্যাটফর্মের যে কোনও ব্যক্তির কীভাবে কুকি ভিত্তিক সেশনগুলি পরিচালনা করতে হবে তাতে কিছু পরিবর্তন হয়েছে। সার্ভারের নিয়ন্ত্রণ (কুকিজ, ফর্ম পোস্ট, ইত্যাদি) অতিক্রম করে এমন কোনও বিষয়ে সংশয়ী হোন ওয়েব ডেভলপমেন্টের একটি সাধারণ নীতি।

এখন পর্যন্ত এনক্রিপশনটি, আমি জানি না front ফ্রন্টে কিছু পরিবর্তন হয়েছে কিনা।

একটি কুকি স্টোরের সাথে মনে রাখার মতো কিছু হ'ল ডেটা পরিমাণের সীমা এবং এই অনুরোধটি প্রতিটি অনুরোধে তারে প্রেরণ করা হবে, যেখানে একটি ডাটাবেস স্টোর হিসাবে কেবল আইডি স্থানান্তর করে এবং সার্ভারে ডেটা লাইভ করে ।


4

এফডাব্লুআইডাব্লু, রেলগুলি 3.1 চলমান প্রস্তাব করে

rails generate session_migration

তবে এটি যেমন একই মাইগ্রেশনটি উত্পন্ন করে

rake db:sessions:create

একই নোটে, রাক টাস্কটি db:sessions:createএখন সরাসরি session_migrationজেনারেটরকে ডাকে । টাস্ক: ক্রিয়েট =>: এনভায়রনমেন্ট "এই ডাটাবেসটিতে টাস্ক অনুপলব্ধ (মাইগ্রেশন সমর্থন নয়)" উত্থাপন করে না যদি না অ্যাক্টিভেকর্ড :: বেসসকনেকশন.সপোর্টস_মিজারেশন? প্রয়োজন 'রেল / জেনারেটর' রেল :: জেনারেটরস কনফিগার! 'রেল / জেনারেটর / রেল / সেশন_ইমিগ্রেশন / সেশন_ ইমিগ্রেশন_জেনারেটর' রেল :: জেনারেটর :: সেশন মাইগ্রেশন জেনারেটর.স্টার্ট [এএনভি ["মাইগ্রেশন"] || "add_sessions_table"] শেষ
তির্যক

rake db:sessions:createএবং rails generate session_migrationজেনারেটর অবচিত এবং পাগল 4 মুছে কারণ তারা অনেক ব্যবহারকারীদের সাথে অ্যাপ্লিকেশনের জন্য ভাল স্কেল না (অনেকগুলি ডাটাবেসের সার্চ লিখেছেন)। রেলগুলি দেখুন 4.0, রেক ডিবি: সেশন: তৈরি করুন

2

রেলস ডিফল্টগুলি আমার কাছে বেশ ভাল বলে মনে হচ্ছে- কুকিস্টোর দ্রুত এবং ব্যবহারের বেশিরভাগ ক্ষেত্রে coverেকে রাখা উচিত। নিশ্চিত হয়ে নিন যে আপনি 4kb এর মধ্যে সীমাবদ্ধ রয়েছেন এবং আপনার ডেটা ব্যবহারকারীর কাছে দৃশ্যমান হবে, তবে রেলের উপায়টি কেবলমাত্র পূর্ণসংখ্যার আইডি এবং বেসিক স্ট্রিং মানগুলির মতো জিনিসগুলির জন্য সেশন ব্যবহার করা হয় - আপনি যদি সেশনে অবজেক্টগুলি বা অত্যন্ত গোপনীয় তথ্য সংরক্ষণের চেষ্টা করছেন আপনি সম্ভবত এটি ভুল করছেন।

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