Whitelist এবং Safe HTML Creation

HTML ডকুমেন্ট ক্লিনিং এবং স্যানিটাইজিং - জেসুপ (JSoup) - Java Technologies

264

যখন আপনি ওয়েব স্ক্র্যাপিং বা HTML ডকুমেন্ট ম্যানিপুলেশন করছেন, তখন নিরাপত্তা খুবই গুরুত্বপূর্ণ বিষয়। বিশেষ করে, আপনি যদি ব্যবহারকারীদের ইনপুট নিয়ে HTML তৈরি করেন বা প্রদর্শন করেন, তখন XSS (Cross-site Scripting) আক্রমণ থেকে নিজেকে রক্ষা করা প্রয়োজন। এর জন্য, জেসুপ (JSoup) এর Whitelist ফিচার ব্যবহার করা যেতে পারে যা HTML ডকুমেন্টে শুধু নিরাপদ এবং অনুমোদিত উপাদান এবং অ্যাট্রিবিউটস রাখে।

এই প্রক্রিয়াটি "Safe HTML Creation" হিসেবে পরিচিত, যেখানে শুধুমাত্র নির্দিষ্ট HTML উপাদান এবং অ্যাট্রিবিউটস অ্যালাও করা হয়।


Whitelist কি?

Whitelist (হোয়াইটলিস্ট) একটি নিরাপত্তা কৌশল যা শুধুমাত্র অনুমোদিত উপাদান এবং অ্যাট্রিবিউটসকে অনুমতি দেয়। যখন আপনি Jsoup এর Whitelist ব্যবহার করেন, এটি HTML ডকুমেন্ট থেকে অপ্রয়োজনীয় বা বিপজ্জনক উপাদান এবং অ্যাট্রিবিউটস সরিয়ে ফেলতে সহায়তা করে।

যেমন: <script>, <style>, এবং অন্যান্য বিপজ্জনক ট্যাগগুলোকে নিষিদ্ধ করা হয়, যাতে সেগুলো ডকুমেন্টে উপস্থিত না থাকে।


Safe HTML Creation with Whitelist

জেসুপের Whitelist ব্যবহার করে আপনি HTML ডকুমেন্ট তৈরি করতে পারেন যা নিরাপদ এবং নিরাপত্তার দিক থেকে মজবুত। জেসুপ একটি Whitelist ক্লাস প্রদান করে যা আপনাকে নির্দিষ্ট ট্যাগ এবং অ্যাট্রিবিউটস অনুমোদন করতে সাহায্য করে।

একটি সাধারণ উদাহরণ

এখানে একটি উদাহরণ দেয়া হচ্ছে যেখানে সেফ HTML তৈরি করার জন্য Whitelist ব্যবহার করা হয়েছে। এই উদাহরণে, শুধুমাত্র কিছু নির্দিষ্ট ট্যাগ যেমন <b>, <i>, এবং <a> অনুমোদিত।

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Safelist;

public class JsoupWhitelistExample {
    public static void main(String[] args) throws Exception {
        String html = "<html><body><b>This is bold</b><i>This is italic</i><a href='http://example.com'>Link</a><script>alert('xss')</script></body></html>";
        
        // শুধুমাত্র নির্দিষ্ট ট্যাগ ও অ্যাট্রিবিউটস অনুমোদন করে সেফ HTML তৈরি
        String safeHtml = Jsoup.clean(html, Safelist.basic());
        
        // সেফ HTML প্রিন্ট করা
        System.out.println("Safe HTML: " + safeHtml);
    }
}

এই উদাহরণে Safelist.basic() ব্যবহার করা হয়েছে, যা কেবলমাত্র বেসিক HTML ট্যাগগুলো যেমন <b>, <i>, <a> ইত্যাদি অনুমোদন করে। যেকোনো স্ক্রিপ্ট বা বিপজ্জনক ট্যাগ যেমন <script> সরিয়ে দেয়া হয়।

আরও উন্নত Whitelist ব্যবহার

জেসুপ আরও উন্নত Whitelist ক্লাস প্রদান করে, যার মাধ্যমে আপনি নির্দিষ্ট ট্যাগ এবং অ্যাট্রিবিউটগুলি কাস্টমাইজ করতে পারেন। যেমন, যদি আপনি চান যে কিছু নির্দিষ্ট ট্যাগ এবং অ্যাট্রিবিউটসমূহ নিরাপদ থাকবে, তবে আপনি Safelist ক্লাসের none() অথবা basicWithImages() ফাংশন ব্যবহার করতে পারেন। উদাহরণস্বরূপ:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.safety.Safelist;

public class JsoupAdvancedWhitelistExample {
    public static void main(String[] args) throws Exception {
        String html = "<html><body><b>This is bold</b><i>This is italic</i><img src='image.jpg' alt='image'/><script>alert('xss')</script></body></html>";
        
        // প্রাপ্ত HTML এ ইমেজ ট্যাগসহ নিরাপদ HTML তৈরি
        String safeHtml = Jsoup.clean(html, Safelist.basicWithImages());
        
        // সেফ HTML প্রিন্ট করা
        System.out.println("Safe HTML: " + safeHtml);
    }
}

এখানে Safelist.basicWithImages() ব্যবহৃত হয়েছে, যার মাধ্যমে শুধুমাত্র নির্দিষ্ট ট্যাগ যেমন <b>, <i>, এবং <img> অনুমোদন করা হয়, এবং <script> ট্যাগটি সরিয়ে ফেলা হয়।


সারাংশ

JSoup ব্যবহার করে Whitelist এবং Safe HTML Creation একটি শক্তিশালী নিরাপত্তা ফিচার যা আপনাকে HTML ডকুমেন্ট থেকে বিপজ্জনক বা অপ্রয়োজনীয় ট্যাগ এবং অ্যাট্রিবিউট সরিয়ে ফেলতে সহায়তা করে। এটি XSS আক্রমণ প্রতিরোধে সাহায্য করে এবং আপনাকে নিরাপদ HTML তৈরি করতে সহায়ক হয়। Safelist ক্লাসের মাধ্যমে আপনি নির্দিষ্ট ট্যাগ এবং অ্যাট্রিবিউটগুলিকে অনুমোদন করতে পারবেন, যা ওয়েব অ্যাপ্লিকেশন বা ওয়েব স্ক্র্যাপিং প্রক্রিয়ায় নিরাপত্তা নিশ্চিত করতে অত্যন্ত গুরুত্বপূর্ণ।

Content added By
Promotion

Are you sure to start over?

Loading...