JSON Hijacking এবং তার প্রতিরোধ

SON Security এবং Best Practices - জেসন (JSON) - Java Technologies

288

JSON Hijacking হল একটি নিরাপত্তা হুমকি, যা মূলত Cross-Site Scripting (XSS) আক্রমণের মাধ্যমে ঘটতে পারে। এই আক্রমণটি JSON ডেটা অপহরণ করে এবং এটিকে একটি আক্রমণকারী সাইটে ব্যবহার করার চেষ্টা করে। JSON Hijacking এ, আক্রমণকারী একটি ওয়েব পেজে এমন একটি JSON রেসপন্স ধরতে সক্ষম হয় যা একটি ওয়েব অ্যাপ্লিকেশন থেকে এসেছে এবং সেই ডেটা তার নিজের উদ্দেশ্যে ব্যবহার করে।

JSON Hijacking কীভাবে কাজ করে?


JSON Hijacking সাধারণত ঘটে যখন একটি ওয়েব অ্যাপ্লিকেশন একটি JSON রেসপন্স সরাসরি ক্লায়েন্টের ব্রাউজারে পাঠায় এবং সেই JSON রেসপন্স নিরাপদ নয় বা প্রটেক্টেড নয়। যদি অ্যাপ্লিকেশনটি যথাযথ Cross-Origin Resource Sharing (CORS) নীতিমালা এবং নিরাপত্তা ব্যবস্থা ব্যবহার না করে, তাহলে আক্রমণকারী সেই ডেটা ম্যানিপুলেট করতে পারে বা সেই ডেটাকে চুরি করতে পারে।

এটি কিভাবে কাজ করতে পারে:

  1. একটি ওয়েব অ্যাপ্লিকেশন JSON ডেটা একটি GET রিকোয়েস্টের মাধ্যমে পাঠায় (যেমন: http://example.com/data).
  2. আক্রমণকারী একটি HTML পেজ তৈরি করে যা সেই JSON ডেটাকে লুকিয়ে নিয়ে যায়। এই HTML পেজের মধ্যে JSON রেসপন্স করার জন্য একটি স্ক্রিপ্ট ট্যাগ ব্যবহার করা হয়, এবং সেই স্ক্রিপ্ট ট্যাগ থেকে JSON ডেটা আক্রমণকারী ওয়েবসাইটে চলে যায়।
  3. আক্রমণকারী সেই JSON ডেটাকে ব্যবহার করতে পারে বা অবৈধভাবে অনুরোধ করা ডেটা চুরি করতে পারে।

উদাহরণস্বরূপ:

<script type="text/javascript">
    // আক্রমণকারী সাইট
    var hijackedData = <script src="http://example.com/data"></script>;
    // এটি আক্রমণকারী সাইটে JSON ডেটা পাঠাতে পারে
</script>

এখানে, আক্রমণকারী সাইট JSON ডেটা (যা অন্য সাইট থেকে আসছে) সরাসরি স্ক্রিপ্ট ট্যাগের মাধ্যমে আকৃষ্ট করতে সক্ষম হয়।


JSON Hijacking থেকে প্রতিরোধের উপায়


JSON Hijacking প্রতিরোধ করার জন্য কিছু নিরাপত্তা ব্যবস্থা গ্রহণ করা যেতে পারে:

  1. JSONP থেকে বিরত থাকা:

    JSONP (JSON with Padding) একটি প্রযুক্তি যা JSON ডেটা পেতে এবং ক্লায়েন্টে JSON রেসপন্স পাঠানোর জন্য ব্যবহৃত হয়, তবে এটি নিরাপত্তার জন্য বিপজ্জনক হতে পারে। JSONP এর মাধ্যমে আক্রমণকারীরা JSON রেসপন্স অবৈধভাবে অর্জন করতে পারে।

    JSONP থেকে নিরাপদ থাকুন এবং শুধুমাত্র CORS (Cross-Origin Resource Sharing) ব্যবহার করুন যেখানে প্রয়োজন।

  2. JSON ডেটা অবজেক্টে প্রোপার্টি এনক্যাপসুলেট করা:

    JSON Hijacking এ JSON ডেটার উপর অ্যানালাইসিস এবং ডেটা চুরি করা হয়। এর জন্য, ডেটার ভিতরের অবজেক্টগুলোকে সতর্কভাবে এনক্যাপসুলেট (encapsulate) করতে হবে যাতে সেগুলো সরাসরি অ্যাক্সেস করা না যায়।

    উদাহরণ:

    var jsonData = {
      "data": {
        "userId": 123,
        "username": "john_doe"
      }
    };
    

    এটি আক্রমণকারীর কাছে JSON ডেটা অ্যাক্সেস করতে প্রতিরোধ করবে, কারণ এতে অবজেক্টটি ইন্ডেক্সিং করার জন্য আরো নিরাপদ ব্যবস্থা তৈরি করা হয়েছে।

  3. HTTP Only Cookie ব্যবহার:

    HTTPOnly cookie সিকিউরিটি অপশনটি সিস্টেমকে নিরাপদ রাখতে সাহায্য করে, যেখানে কুকি শুধুমাত্র সার্ভার সাইডে অ্যাক্সেসযোগ্য থাকে এবং JavaScript দ্বারা সহজে অ্যাক্সেস করা সম্ভব নয়।

    উদাহরণ:

    setcookie("sessionID", $sessionID, time() + 3600, "/", "", true, true);
    

    এখানে, কুকির "HttpOnly" এবং "Secure" অপশন সেট করা হয়েছে যাতে এটি ব্রাউজার থেকে স্ক্রিপ্টের মাধ্যমে এক্সেস করা না যায়।

  4. Cross-Origin Resource Sharing (CORS) সেটআপ করা:

    CORS একটি নিরাপত্তা ফিচার যা একটি সাইটের ডেটা শুধুমাত্র ঐ সাইট থেকে আসা সঠিক রিকোয়েস্টের মাধ্যমে অ্যাক্সেস করতে দেয়। CORS পলিসি সঠিকভাবে সেট আপ করা হলে JSON Hijacking আক্রমণ প্রতিরোধ করা সম্ভব।

    উদাহরণ:

    @CrossOrigin(origins = "https://trusted-origin.com")
    @RequestMapping("/data")
    public ResponseEntity<String> getData() {
        return ResponseEntity.ok("{\"name\":\"John Doe\",\"age\":30}");
    }
    

    এখানে, কেবলমাত্র trusted-origin.com থেকে আসা রিকোয়েস্টগুলোই JSON ডেটার অ্যাক্সেস পাবে।

  5. সার্ভারে JSON ডেটার প্রকার নির্ধারণ করা:

    JSON ডেটার MIME টাইপ হতে হবে application/json এবং এটি সার্ভার থেকে পাঠানোর সময় সঠিকভাবে সেট করা উচিত। সঠিক MIME টাইপ নিশ্চিত করলে JSON Hijacking আক্রমণ থেকে কিছুটা সুরক্ষা পাওয়া যায়।

    উদাহরণ:

    response.setHeader("Content-Type", "application/json");
    

    এটি নিশ্চিত করবে যে JSON ডেটা শুধুমাত্র নির্ধারিত টাইপে গ্রহণযোগ্য হবে।

  6. CSRF Token ব্যবহার:

    Cross-Site Request Forgery (CSRF) আক্রমণের বিরুদ্ধে সুরক্ষা নিশ্চিত করতে, CSRF Token ব্যবহার করা যেতে পারে। এটি নিশ্চিত করবে যে ব্যবহারকারী প্রকৃতপক্ষে আবেদনটি করেছেন এবং এটি আসল ক্লায়েন্ট সাইট থেকে এসেছে।

    উদাহরণ:

    var csrfToken = getCsrfTokenFromHeader();
    fetch('/data', {
      method: 'GET',
      headers: {
        'X-CSRF-TOKEN': csrfToken
      }
    });
    

সার্বিক পর্যালোচনা


JSON Hijacking একটি গুরুত্বপূর্ণ নিরাপত্তা হুমকি হতে পারে, বিশেষত যখন JSON ডেটা অপ্রত্যাশিত বা অবৈধ উৎস থেকে অ্যাক্সেস করা যায়। তবে সঠিক সুরক্ষা ব্যবস্থাগুলি যেমন CORS, JSONP এড়িয়ে চলা, HTTPOnly Cookies, এবং CSRF Token ব্যবহার করে এই ধরনের আক্রমণ প্রতিরোধ করা সম্ভব। এই নিরাপত্তা ব্যবস্থা গুলি কার্যকরভাবে JSON ডেটা সুরক্ষিত রাখতে সহায়ক, এবং ডেটা অ্যাক্সেসের সীমাবদ্ধতা স্থাপন করে অ্যাপ্লিকেশনটির সুরক্ষা নিশ্চিত করতে সাহায্য করে।

Content added By
Promotion

Are you sure to start over?

Loading...