প্রসঙ্গের ভিত্তিতে সুরক্ষিত ইউআরএল ব্যবহার করা


9

প্রসঙ্গের ভিত্তিতে সুরক্ষিত ইউআরএল তৈরি করতে আমি বিভিন্ন পদ্ধতি ব্যবহারের সাথে পরিচিত, যেমন:

$this->getUrl('my-page', array('_forced_secure' => $this->getRequest()->isSecure()));

এটি সুরক্ষিত মোডে থাকাকালীন কোনও সুরক্ষিত পৃষ্ঠায় সরাসরি নির্দেশ করবে এমন লিঙ্কগুলি তৈরি করার জন্য দুর্দান্ত কাজ করে (বা সুরক্ষিত মোড ব্যবহার না করে কেবল নিরাপদ পৃষ্ঠাতে লিঙ্ক করবে)।

আমি যে সমস্যাটি দেখছি তা হ'ল ম্যাজেন্টো কেবল কয়েকটি বিশেষ পৃষ্ঠাগুলিকে সুরক্ষিত হওয়া প্রয়োজন (গ্রাহক অ্যাকাউন্ট, চেকআউট ইত্যাদি) হিসাবে বিবেচনা করে। আমি যা পছন্দ করি তা হ'ল ব্যবহারকারী বর্তমানে সুরক্ষিত মোডে থাকলে সুরক্ষিত লিঙ্কটি সর্বদা ব্যবহার করুন বা ব্যবহারকারী যদি নিরাপদ মোডে থাকে তবে সুরক্ষিত লিঙ্কটি ব্যবহার করুন।

আমি যা বলতে পারি তা থেকে, আমার একমাত্র আসল বিকল্পগুলি হ'ল:

  1. $this->getUrl()উপরের স্নিপেটের মতো হওয়ার জন্য প্রতিটি উদাহরণ সংশোধন করুন ।
  2. base_urlসমস্ত পৃষ্ঠাগুলি সুরক্ষিত করতে বাধ্য করে এইচটিটিপিএস ব্যবহার করতে অ-সুরক্ষিত সেট করুন ।

এমন কোনও আরও ভাল পদ্ধতি আছে যা $this->getUrl()ব্যবহারকারীর প্রসঙ্গ নির্বিশেষে প্রতিটি কল পরিবর্তন করতে বা সমস্ত পৃষ্ঠাকে এইচটিটিপিএসে বাধ্য করা জড়িত না ?

- সম্পাদনা -

আমি সচেতন যে আমি /app/code/core/Mage/Core/Model/Url.php->setRouteParams()পদ্ধতিটি সংশোধন করতে পারি , যদিও আমি আশা করছি যে আরও পরিষ্কার উপায় আছে।

উত্তর:


5

ব্যবহারকারী বর্তমানে সুরক্ষিত প্রোটোকলটির সাথে ম্যাজেন্টো সর্বদা মেলে যা সমস্যার কারণ হতে পারে যেমন সাইটের হোমপৃষ্ঠার মতো কোনও সুরক্ষিত ইউআরএল থাকা অবস্থায় গ্রাহক লগইন পৃষ্ঠায় সুরক্ষিত ইউআরএল না ছড়িয়ে দেওয়া।

আমি যা করার পরামর্শ দিচ্ছি তা হল সুরক্ষারূপে সুরক্ষিত হওয়ার জন্য আপনাকে যে অতিরিক্ত রুটগুলি দরকার সেগুলি ঘোষণার জন্য কাস্টম মডিউলটির কনফিগারেশনের ফাইলটিতে কিছু কনফিগারেশন এক্সএমএল যুক্ত করা। আপনি আপনার কনফিগার.এমএমএল ফাইলটিতে এটি করে ( module_or_route_idঅনন্য কিছু দিয়ে প্রতিস্থাপন :

<config>
    <frontend>
        <secure_url>
            <module_or_route_id>/route/</module_or_route_id>
        </secure_url>
    </frontend>
</config>

আপনি যদি Mage_Customer মডিউলটির কনফিগারেশন.এক্সএমএল এ যান তবে আপনি এর উদাহরণ দেখতে পাবেন যেখানে "/ গ্রাহক /" পথটিকে নিরাপদ হিসাবে সংজ্ঞায়িত করা হয়েছে।

দ্রষ্টব্য: যদি module_or_route_idউপরের উদাহরণের অংশটি অনন্য না হয় তবে কেবলমাত্র একটি সংজ্ঞা ব্যবহৃত হবে, যার ফলে কিছু সঠিকভাবে সুরক্ষিত না হয়। নোডের নামটি অনন্য কিনা তা নিশ্চিত করুন। :)

যদিও এটি পথ ভিত্তিক, তবে আমি নিশ্চিত নই যে এটি পৃথক সিএমএস সামগ্রী পৃষ্ঠাগুলির ইউআরএলগুলিতে কীভাবে প্রযোজ্য হবে, উদাহরণস্বরূপ, তারা সবাই এখনও একটি রুট / পথ ভাগ করবে যেহেতু এটি একটি পুনর্লিখন যা সেগুলি সমস্তকে একই সিএমএসে প্রেরণ করে s নিয়ামক।

আপনার যদি সত্যিই এইচটিটিপিএস চালানোর জন্য পুরো সাইটটির প্রয়োজন হয় তবে আপনাকে সুরক্ষিত এবং অ-সুরক্ষিত বেস উভয় URL সেটিংসের জন্য https: // URL গুলি ব্যবহার করতে হবে।


আমি প্রতিটি সম্ভাব্য সীমান্ত রুটের (বিশেষত 'অ-দৃশ্যমান' রুট যেমন ক্যাটালগ অনুসন্ধান / এজাজ / পরামর্শ, ইত্যাদি) অন্তর্ভুক্ত করার পরিবর্তে মূল URL মডেলটি পরিবর্তন করতে পছন্দ করব। হ্যাঁ এটি একটি মূল পরিবর্তন, তবে এটি কোড বনামের অতিরিক্ত তিনটি লাইন however এমন এক পরিস্থিতিতে যেখানে আপনি পাল্টাতে চাইছেন কেবল দু'টি রুট, আপনার পরামর্শটি আরও অনেক অর্থবোধ করে।
পিএসপাহ্ন

অতীতে আমরা Mage_Core_Model_Store::getBaseUrlযখন কোনও ফেসবুক ট্যাবে এম্বেড করা হয় তখন আমাদের স্টোরটিকে সর্বদা সুরক্ষিত করার জন্য সংশোধন করেছি । যদিও বিবেচনা করার মতো অন্যান্য জিনিস রয়েছে যেমন ব্লক ক্যাশে প্রথমে যেটি হিট করে তা সংরক্ষণ করে (আপনাকে ক্যাশে কীতে কিছু যোগ করতে হবে)। ডেভিড যেমন বলেছে তেমনই আপনারও থাকতে হবে, লগইন / চেকআউটে নিরাপদ লিঙ্কগুলি বা চূড়ান্তভাবে আপনার সাইটের প্রতিটি গ্রাহক নিরাপদে মোডে শেষ করতে পারেন যদি তারা কখনও লগ ইন করে বা চেকআউটটিকে আঘাত করে।
পিটার ও'ক্যালাহান

1
@pspn আপনি কি বিবেচনা করেছেন যে /catalogsearch/পথটিকে নিরাপদ হিসাবে নির্ধারণের সাথে কোনও মিলের মিল থাকা উচিত /catalogsearch/*/*/? অর্থাত্ সমস্ত catalogsearchকিছু সুরক্ষিত করার জন্য কেবল একটি নিয়ম লাগবে ।
ডেভিডালগার

@ ক্যাগস আমার উত্তরের সাথে যা কিছু মিস করেছি তা নির্দেশ করেছিল এবং তা হ'ল ক্যাশে কীগুলি সম্পর্কে নোট… যদি ইউআরএলগুলি ধারাবাহিকভাবে এক বা অন্যটি না হয় তবে আপনার ফলে থাকা লিঙ্কগুলিকে বিশৃঙ্খলাবদ্ধ করতে ক্যাশে ব্লকগুলি থাকতে হবে।
ডেভিডালগার

এটি ক্যাশে কী সম্পর্কে একটি ভাল পয়েন্ট। যাওয়ার সবচেয়ে ভাল উপায় মনে হচ্ছে কেবল সমস্ত কিছু এইচটিটিপিএস চালানো।
pspahn

2

আপনার app/etc/config.xmlফাইলে নিম্নলিখিতটি সেট করুন:

<?xml version="1.0"?>
<config>
  <frontend>
    <secure_url>
      <all>/</all>
    </secure_url>
  </frontend>
</config>

এটি Magento 1.9.1 এ কাজ করে

যদি ব্যবহারকারী https ব্যবহার করে থাকে তবে এটির সমস্ত url টি https এ পুনরায় লেখার জন্য বাধ্য করা উচিত।


আরও ভাল: কনফিগার.এক্সএমএল ব্যবহার না করে স্থানীয়.xml ব্যবহার করুন
মাইকেল

1

এটি সিস্টেম | এগুলির একটি সংক্ষিপ্ত বিবরণযুক্ত তবে গুরুত্বপূর্ণ বিকল্প কনফিগারেশন | ওয়েব ~ যেখানে আপনাকে "সীমান্তে সুরক্ষিত ইউআরএল ব্যবহার করুন" বলতে হবে - আপনি যদি এটি হ্যাঁ সেট করে থাকেন তবে https এর দ্বারা লোড করা একটি পৃষ্ঠা https লিঙ্কগুলি ব্যবহার করবে,

কোড লেখার বা বেশিরভাগ ক্ষেত্রে অতিরিক্ত কনফিগারেশন সরবরাহ করার প্রয়োজন নেই

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