একসাথে রেফারারদের একগুচ্ছ ব্লক করার কি কোনও দুর্দান্ত উপায় আছে?


21

রেফারার স্প্যাম প্রতিরোধ করার জন্য, আমার nginx.conf এ এর ​​মতো একটি বিভাগ রয়েছে:

if ($http_referer ~* spamdomain1\.com) {
    return 444;
}
if ($http_referer ~* spamdomain2\.com) {
    return 444;
}
if ($http_referer ~* spamdomain3\.com) {
    return 444;
}

এই নিয়মগুলি nginx কে কেবল সংযোগটি বন্ধ করতে বলছে যদি ব্যবহারকারীদের মধ্যে এইগুলির মধ্যে একটি রেফারার সেট থাকে। এটি করার জন্য আরও কি মার্জিত উপায় আছে? আমি কি এই ডোমেনগুলির একটি তালিকা সংজ্ঞায়িত করতে পারি এবং তারপরে এমন কিছু বলতে পারি, "যদি রেফারার এই তালিকায় থাকে তবে 444 ফেরৎ"?


নমুনা মতো একটি বড় ফাইল তৈরি করুন এবং এটি প্রয়োজন যেখানে ফাইল প্রয়োজন হিসাবে অন্তর্ভুক্ত।
হ্রভোয়েপ্পলজার

উত্তর:


31

আমি চেষ্টা করব map:

map $http_referer $bad_referer {
    default                  0;
    "~spamdomain1.com"       1;
    "~spamdomain2.com"       1;
    "~spamdomain3.com"       1;
}

তারপরে এটির মতো ব্যবহার করুন:

if ($bad_referer) {
    return 444;
}

1
যেহেতু মানচিত্রে একটি হ্যাশ টেবিল ব্যবহার করা হয়েছে এই পদ্ধতিটি পৃথক পরীক্ষাগুলির চেয়ে আরও ভাল সঞ্চালন করবে। বিকল্পগুলির জন্য ডক্সগুলি পড়ুন যা ব্যবহার করা যেতে পারে, যেমন hostnamesএবং includeপৃথক কোনও ফাইল যেখানে তারা তালিকাভুক্ত থাকে তা বজায় রাখা আরও সহজ করে তুলতে পারে।
ব্রায়ান

mapআমি সম্পর্কিত ডকসগুলি পড়তে আগ্রহী ছিলাম যে কেউ নির্দিষ্ট রেফারারদের সাথে মিলে যাওয়ার জন্য রিজেক্স ব্যবহার করতে পারে যেহেতু ওপি ~*অপারেটরটি ব্যবহার করে রেজিक्स ম্যাচিং করছে , এবং প্রকৃতপক্ষে কেবল মানচিত্রের নিয়ম নির্দিষ্ট "~*spamdomain4.com" 1;করে ট্রিকটি করবে। ঝরঝরে!
হ্রভোয়েপ্পলজার

আপনি ঠিক বলেছেন, এটিকে যাইহোক এটি ব্যবহার করা দরকার।
মাইকেল হ্যাম্পটন

hostnamesবিকল্পটি ব্যবহার করে এটি সহজ হবে.spamdomain4.com 1;
ব্রায়ান

4
@ ব্রায়ান রেফারার ক্ষেত্রটি সম্পূর্ণ ইউআরএল, কেবল কোনও হোস্টনাম নয়। সুতরাং যে কাজ করে না।
মাইকেল হ্যাম্পটন

13

আপনি যৌক্তিক ব্যবহার করতে পারে ORএক বহু ম্যাচ বিবৃতি যেমন নৈপুণ্য

if ($http_referer ~ "spamdomain1\.com|spamdomain2\.com|spamdomain3\.com")  { 
  return 444;
}

প্রতি মন্তব্য সম্পাদনা ; break;ব্লক থেকে অপসারণ


2
বর্তমানের অনুরোধটির প্রক্রিয়াকরণটি বন্ধ হয়ে যাওয়ার কারণে ব্রেক নির্দেশটি কখনই পৌঁছানো যাবে না।
জাভেয়ের লুকাস

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