ইনপুট ভ্যালিডেশন এবং স্যানিটাইজেশন

Security Best Practices - ভিবিস্ক্রিপ্ট (VBScript) - Web Development

193

ভিবিস্ক্রিপ্ট (VBScript) এ ইনপুট ভ্যালিডেশন এবং স্যানিটাইজেশন ব্যবহার করা হয় যাতে ইউজার ইনপুট নিরাপদ এবং সঠিকভাবে প্রক্রিয়া করা যায়। এটি বিশেষ করে ওয়েব ডেভেলপমেন্টে খুব গুরুত্বপূর্ণ, যেখানে ব্যবহারকারীরা বিভিন্ন ধরণের ইনপুট প্রদান করে থাকে এবং সেগুলি সঠিকভাবে যাচাই করা না হলে সিকিউরিটি সমস্যা তৈরি হতে পারে (যেমন SQL ইনজেকশন, ক্রস-সাইট স্ক্রিপ্টিং বা XSS)।

ইনপুট ভ্যালিডেশন এবং স্যানিটাইজেশন নিশ্চিত করার মাধ্যমে আপনি অবৈধ ইনপুটগুলি ফিল্টার করতে পারেন এবং ব্যবহারকারীর পক্ষ থেকে কোনও বিপজ্জনক স্ক্রিপ্ট বা কোড চালানো প্রতিরোধ করতে পারেন।


ইনপুট ভ্যালিডেশন (Input Validation)

ইনপুট ভ্যালিডেশন হচ্ছে ইনপুটের প্রকার (type), দৈর্ঘ্য (length), এবং বৈধতা (validity) যাচাই করা। এর মাধ্যমে আপনি নিশ্চিত করতে পারেন যে ইনপুটটি সঠিক ফরম্যাটে আছে এবং আপনি যা আশা করছেন তা। ভ্যালিডেশন সঠিকভাবে না হলে ডাটাবেস বা অন্য সিস্টেমের সুরক্ষা ঝুঁকি হতে পারে।

ভ্যালিডেশন করার কিছু সাধারণ পদ্ধতি:

  1. নিউমেরিক ইনপুট চেক করা (যেমন শুধুমাত্র সংখ্যা)
  2. ইমেইল ফরম্যাট চেক করা
  3. ইউজারনেম, পাসওয়ার্ড বা ফিল্ডের দৈর্ঘ্য চেক করা

উদাহরণ ১: শুধুমাত্র সংখ্যা চেক করা

Function IsNumericInput(input)
    If IsNumeric(input) Then
        IsNumericInput = True
    Else
        IsNumericInput = False
    End If
End Function

Dim userInput
userInput = "12345"

If IsNumericInput(userInput) Then
    MsgBox "এটি একটি বৈধ সংখ্যা।"
Else
    MsgBox "এটি একটি অবৈধ সংখ্যা।"
End If

এখানে IsNumericInput ফাংশনটি চেক করছে যে ইউজার যে ইনপুট দিয়েছে তা একটি বৈধ সংখ্যা কি না।

উদাহরণ ২: ইমেইল ঠিকানা চেক করা

Function IsValidEmail(input)
    Dim regEx
    Set regEx = CreateObject("VBScript.RegExp")
    regEx.IgnoreCase = True
    regEx.Pattern = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
    
    If regEx.Test(input) Then
        IsValidEmail = True
    Else
        IsValidEmail = False
    End If
End Function

Dim emailInput
emailInput = "test@example.com"

If IsValidEmail(emailInput) Then
    MsgBox "এটি একটি বৈধ ইমেইল ঠিকানা।"
Else
    MsgBox "এটি একটি অবৈধ ইমেইল ঠিকানা।"
End If

এখানে, IsValidEmail ফাংশনটি ব্যবহারকারীর ইনপুটের ইমেইল ঠিকানা যাচাই করছে যে এটি একটি সঠিক ইমেইল ফরম্যাটে আছে কিনা।


ইনপুট স্যানিটাইজেশন (Input Sanitization)

ইনপুট স্যানিটাইজেশন হল ব্যবহারকারীর ইনপুট থেকে বিপজ্জনক চিহ্ন বা কোড সরিয়ে ফেলা। এটি ব্যবহারকারী থেকে পাওয়া ইনপুটে থাকা যেকোনো স্ক্রিপ্ট, SQL কোড, বা অন্যান্য সন্দেহজনক কোড ব্লক ফিল্টার করে। স্যানিটাইজেশন সাধারণত ইনপুট পাস করার আগে করা হয়, যাতে নিরাপত্তার দিক থেকে কোন ঝুঁকি না থাকে।

স্যানিটাইজেশন করার কিছু সাধারণ পদ্ধতি:

  1. HTML এফেক্টিভ চিহ্নগুলিকে পাল্টানো (যেমন <, >, &, " ইত্যাদি)
  2. SQL ইনজেকশন থেকে রক্ষা পাওয়া
  3. JavaScript কোড ফিল্টার করা

উদাহরণ ১: HTML ইনপুট স্যানিটাইজেশন

Function SanitizeHTMLInput(input)
    input = Replace(input, "<", "<")
    input = Replace(input, ">", ">")
    input = Replace(input, "&", "&")
    input = Replace(input, """", """)
    input = Replace(input, "'", "'")
    SanitizeHTMLInput = input
End Function

Dim userInput
userInput = "<script>alert('Hello');</script>"

userInput = SanitizeHTMLInput(userInput)

MsgBox "স্যানিটাইজ করা ইনপুট: " & userInput

এখানে, SanitizeHTMLInput ফাংশনটি HTML ইনপুটের বিপজ্জনক চিহ্ন যেমন <, >, &, " এবং ' স্যানিটাইজ করছে যাতে XSS (Cross-Site Scripting) অ্যাটাক থেকে রক্ষা পাওয়া যায়।

উদাহরণ ২: SQL ইনজেকশন স্যানিটাইজেশন

Function SanitizeSQLInput(input)
    input = Replace(input, "'", "''") ' Single quote স্যানিটাইজ করা
    input = Replace(input, ";", "")   ' সেমিকোলন সরানো
    input = Replace(input, "--", "")  ' Comment চিহ্ন সরানো
    SanitizeSQLInput = input
End Function

Dim userInput
userInput = "Robert'); DROP TABLE Students;--"

userInput = SanitizeSQLInput(userInput)

MsgBox "স্যানিটাইজ করা ইনপুট: " & userInput

এখানে, SanitizeSQLInput ফাংশনটি SQL ইনজেকশন থেকে সুরক্ষা দিতে ইনপুটের মধ্যে থাকা যেকোনো বিপজ্জনক চিহ্ন স্যানিটাইজ করছে, যেমন সিঙ্গল কোট (') এবং সেমিকোলন (;)।


সারাংশ

VBScript এ ইনপুট ভ্যালিডেশন এবং স্যানিটাইজেশন অত্যন্ত গুরুত্বপূর্ণ, বিশেষত নিরাপত্তা নিশ্চিত করার জন্য। ইনপুট ভ্যালিডেশন ব্যবহারকারীর ইনপুটের সঠিকতা যাচাই করে, যেমন সংখ্যার প্রকার, ইমেইল ফরম্যাট ইত্যাদি। স্যানিটাইজেশন ইনপুটে থাকা বিপজ্জনক কোড বা চিহ্নগুলো সরিয়ে ফেলে, যা সিকিউরিটি ঝুঁকি তৈরি করতে পারে, যেমন SQL ইনজেকশন বা ক্রস-সাইট স্ক্রিপ্টিং (XSS) আক্রমণ। এই দুটি পদ্ধতি একসাথে ব্যবহার করে আপনি নিরাপদ এবং সঠিক ইনপুট প্রসেসিং নিশ্চিত করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...