প্রকল্প সম্পর্কে
Laravel Scanner Guard হলো Laravel অ্যাপ্লিকেশনের জন্য একটি Composer প্যাকেজ যা ফ্রেমওয়ার্কের রাউটারে পৌঁছানো স্বয়ংক্রিয় দুর্বলতা-স্ক্যানার ট্রাফিক শনাক্ত করে এবং ব্লক করে। এটি /wp-admin, /wp-login, /.git/config, /phpmyadmin, এবং /wp-json-এর মতো সাধারণ প্রোব পাথ লক্ষ্য করে, প্রতি IP-তে পুনরাবৃত্ত হিট গণনা করে এবং একটি সময় উইন্ডোর মধ্যে কনফিগারযোগ্য থ্রেশহোল্ডে পৌঁছালে নিষেধাজ্ঞা জারি করে। নিষিদ্ধ IP-গুলি তাৎক্ষণিক প্রতিক্রিয়া পায় (ডিফল্টভাবে 404) যাতে সম্পূর্ণ ফ্রেমওয়ার্ক বুট, রাউটিং এবং ভিউ রেন্ডারিংয়ের খরচ এড়ানো যায়।
প্যাকেজটি একটি scanner-guard রুট মিডলওয়্যার অ্যালিয়াস নিবন্ধন করে যা ডেভেলপার ম্যানুয়ালি একটি মিডলওয়্যার গ্রুপ বা নির্দিষ্ট রাউটে সংযুক্ত করেন। কনফিগারেশনে ban_threshold, ban_window, ban_duration, scanner_paths (fnmatch-স্টাইল ওয়াইল্ডকার্ড), এবং response_status অন্তর্ভুক্ত। এটি স্পষ্টভাবে লিটারেল অস্তিত্বহীন .php ফাইল অনুরোধ পরিচালনা করে না যা Laravel বুট হওয়ার আগে nginx/PHP-FPM স্তরে ব্যর্থ হয়—সেগুলির জন্য একটি nginx try_files সমাধান প্রয়োজন।
ঐচ্ছিক ASN ব্লকলিস্টিং সম্পূর্ণ নেটওয়ার্ক (যেমন AS16276/OVH) সরাসরি ব্লক করার অনুমতি দেয়, GeoIP রেজোলিউশন laravel-visitor-fingerprint-এর ip_api বা maxmind ড্রাইভারের কাছে অর্পণ করে। ব্লকলিস্ট খালি থাকলে, কোনো GeoIP লুকআপ ঘটে না, শূন্য লেটেন্সি যোগ করে।
প্রতিটি নিষেধাজ্ঞা scanner_guard_bans-এ একটি অডিট সারি লেখে যাতে reason, matched_value, hit_count, banned_at, এবং expires_at থাকে। ডেটাবেস শুধুমাত্র IP-এর একটি সল্টেড হ্যাশ সংরক্ষণ করে (কখনও কাঁচা ঠিকানা নয়); কাঁচা IP আলাদাভাবে ban_duration-এর সমান TTL সহ ক্যাশে করা হয় nginx এক্সপোর্টের উদ্দেশ্যে। একটি export-denylist Artisan কমান্ড সক্রিয় নিষেধাজ্ঞাগুলি nginx deny লাইন হিসাবে লেখে, ঐচ্ছিক দৈনিক স্বয়ংক্রিয় সিঙ্ক সহ।
প্যাকেজটি তিনটি ড্রাইভার সমর্থন করে: database (ডিফল্ট, অডিট ট্রেইল এবং পরিসংখ্যান সহ), http (HMAC-স্বাক্ষরিত JSON POST-এর মাধ্যমে একটি কেন্দ্রীয় অ্যাপে নিষেধাজ্ঞা ফরওয়ার্ড করে, হাব-অ্যান্ড-স্যাটেলাইট আর্কিটেকচার সক্ষম করে), এবং cache (শুধুমাত্র নিষেধাজ্ঞা, কোনো স্থায়িত্ব নেই)। দৈনিক সমষ্টিগত পরিসংখ্যান (bans_count, hits_total, reason_stats, top_matched_values) নিষেধাজ্ঞার সময় রেকর্ড করা হয় এবং নিষেধাজ্ঞা সারি মুছে ফেলার পরেও টিকে থাকে। একটি aggregate-and-prune কমান্ড পরিসংখ্যান সমন্বয় করে, মেয়াদোত্তীর্ণ নিষেধাজ্ঞা মুছে ফেলে, এবং ধারণ নীতি প্রয়োগ করে (ডিফল্ট 90 দিন), ডিফল্টভাবে দৈনিক স্ব-নির্ধারিত।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.