এস 3 উত্স থেকে অ্যামাজন ক্লাউডফ্রন্টে এইচএসটিএস


11

কোনও এস 3 উত্স থেকে অ্যামাজন ক্লাউডফ্রন্ট বিতরণে এইচএসটিএস শিরোনাম স্থাপন করা কি সম্ভব?

উত্তর:



10

এ সম্পর্কে একটি আপডেট ...

এইচটিটিপি রেসপন্স শিরোনামগুলি এখন ল্যাম্বদা @ এজ ফাংশনগুলির মাধ্যমে কাস্টমাইজ করা যায়। ডকুমেন্টেশনের জন্য দয়া করে http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-at-the-edge.html দেখুন । এটি চেষ্টা করার জন্য, এডাব্লুএস কনসোলে একটি নতুন ল্যাম্বডা ফাংশন তৈরি করুন। ভাষার জন্য 'এজ নজ.জেএস 4.3' চয়ন করুন এবং ক্লাউডফ্রন্ট-পরিবর্তন-প্রতিক্রিয়া-শিরোনাম টেম্পলেটটি সন্ধান করুন। আপনি যদি এটি করেন তবে ল্যাম্বদা আপনাকে জিজ্ঞাসা করবে যে ক্লাউডফ্রন্টের বিতরণ এবং ইভেন্টটিতে কোন ফাংশনটি প্রয়োগ করতে হবে। নোট করুন যে আপনি যে কোনও সময় ক্লাউডফ্রন্ট আচরণ ট্যাবে গিয়ে সম্পাদনা বা পরিবর্তন করতে পারেন।

লাম্বদা ফাংশনটির একটি উদাহরণ এখানে ...

'use strict';
exports.handler = (event, context, callback) => {

    const response = event.Records[0].cf.response;
    response.headers['Strict-Transport-Security'] = 'max-age=2592000; includeSubDomains';

    callback(null, response);
};

1
দুর্দান্ত, চেষ্টা করে দেখুন!
chrisvdb

আমি একই নিবন্ধ জুড়ে হোঁচট খেয়েছি ... এটি কি আপনার পক্ষে কাজ করে? @ chrisvdb
স্টিভেরিনো

@ স্টেভারিনো আসলে এটি চেষ্টা করে দেখেনি, তবে আমরা কেবলমাত্র একটি দ্বিতীয় স্থিতিশীল ওয়েবসাইট স্থাপন করছি যা এর থেকে উপকৃত হতে পারে আমরা এই উদাহরণে চেষ্টা করে দেখতে পারি। আমি সে ক্ষেত্রে আবার রিপোর্ট করব, দয়া করে এটিও করুন। পাশাপাশি পারফরম্যান্স প্রভাব বুঝতে আকর্ষণীয় হবে।
chrisvdb

1
আপডেট - দেখা যাচ্ছে যে ল্যাম্বদা @ এজ এর বর্তমান পূর্বরূপ সংস্করণে 100 টিপিএস সীমাটি নির্ভরযোগ্যভাবে আমাদের (সাধারণ এবং কম ট্রাফিক) ওয়েবসাইট পরিবেশন করতে যথেষ্ট নয়। কিছু সম্পদ এলোমেলোভাবে একটি 50x প্রতিক্রিয়া কোড দেয়।
chrisvdb

1
প্রতিক্রিয়া.হেডারের ফর্ম্যাটটি পরিবর্তন হয়েছে। উপরের কাজগুলি আর কাজ করে না।
হামিশ

4

অ্যান্ড্রু এর উত্তর যোগ করতে:

আমি এটি এবং কয়েকটি নোট চেষ্টা করেছি: সুনির্দিষ্ট প্রান্ত নোডেজ রানটাইম আর নেই, তবে ল্যাম্বদা এন ভার্জিনিয়া অঞ্চলে তৈরি করা দরকার এবং ক্লাউডফ্রন্টের উত্স-প্রতিক্রিয়া বা দর্শকের প্রতিক্রিয়া দ্বারা ট্রিগার করা উচিত ।

বাক্সের বাইরে থাকা কোডটি আর কাজ করবে বলে মনে হচ্ছে না। এটি ERR_CONTENT_DECODING_FAILED দেয়।

সমাধানটি নীচে json সিনট্যাক্স ব্যবহার করা হয়:

response.headers['Strict-Transport-Security'] = [ { key: 'Strict-Transport-Security', value: "max-age=31536000; includeSubdomains; preload" } ];
response.headers['X-Content-Type-Options']    = [ { key: 'X-Content-Type-Options', value: "nosniff" } ];

শিরোনাম সম্পর্কে আরও তথ্য এখানে: infosec.mozilla.org/ গাইডলাইনস
জোশ হাবদাস

1

সঠিক, যেহেতু ল্যাম্বদা @ এজ সাধারণত উপলব্ধ থাকে তারা এটিকে এন ভার্জিনিয়ায় সীমাবদ্ধ করে এবং নোড ৪.৩ এর পরিবর্তে নোড 6..১০ বেছে নিতে হবে।

আমাদের নীচের কোডের প্রাসঙ্গিক অংশটি (আমাদের উদ্দেশ্যে এটি সর্বদা একটি 302 স্থায়ী পুনঃনির্দেশ হবে):

'use strict';
exports.handler = (event, context, callback) => {

  var request = event.Records[0].cf.request;
  const response = {
    status: '302',
    statusDescription: '302 Found',
    httpVersion: request.httpVersion,
    headers: {
      Location: [
        {
            "key":"Location",
            "value":"someURL"
        }
      ],
      'Strict-Transport-Security': [
        {
          "key":"Strict-Transport-Security",
          "value":'max-age=63072000; includeSubDomains; preload'
        }
      ],
    },
  };
  callback(null, response);
};

ক্লাউডফ্রন্টে বিভিন্ন আচরণ কনফিগার করে আপনি সীমাবদ্ধ করতে পারেন কোন অনুরোধগুলি লাম্বদা ফাংশনটিকে কল করবে।


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