ভিবিস্ক্রিপ্ট (VBScript) এ ইনপুট ভ্যালিডেশন এবং স্যানিটাইজেশন ব্যবহার করা হয় যাতে ইউজার ইনপুট নিরাপদ এবং সঠিকভাবে প্রক্রিয়া করা যায়। এটি বিশেষ করে ওয়েব ডেভেলপমেন্টে খুব গুরুত্বপূর্ণ, যেখানে ব্যবহারকারীরা বিভিন্ন ধরণের ইনপুট প্রদান করে থাকে এবং সেগুলি সঠিকভাবে যাচাই করা না হলে সিকিউরিটি সমস্যা তৈরি হতে পারে (যেমন SQL ইনজেকশন, ক্রস-সাইট স্ক্রিপ্টিং বা XSS)।
ইনপুট ভ্যালিডেশন এবং স্যানিটাইজেশন নিশ্চিত করার মাধ্যমে আপনি অবৈধ ইনপুটগুলি ফিল্টার করতে পারেন এবং ব্যবহারকারীর পক্ষ থেকে কোনও বিপজ্জনক স্ক্রিপ্ট বা কোড চালানো প্রতিরোধ করতে পারেন।
ইনপুট ভ্যালিডেশন (Input Validation)
ইনপুট ভ্যালিডেশন হচ্ছে ইনপুটের প্রকার (type), দৈর্ঘ্য (length), এবং বৈধতা (validity) যাচাই করা। এর মাধ্যমে আপনি নিশ্চিত করতে পারেন যে ইনপুটটি সঠিক ফরম্যাটে আছে এবং আপনি যা আশা করছেন তা। ভ্যালিডেশন সঠিকভাবে না হলে ডাটাবেস বা অন্য সিস্টেমের সুরক্ষা ঝুঁকি হতে পারে।
ভ্যালিডেশন করার কিছু সাধারণ পদ্ধতি:
- নিউমেরিক ইনপুট চেক করা (যেমন শুধুমাত্র সংখ্যা)
- ইমেইল ফরম্যাট চেক করা
- ইউজারনেম, পাসওয়ার্ড বা ফিল্ডের দৈর্ঘ্য চেক করা
উদাহরণ ১: শুধুমাত্র সংখ্যা চেক করা
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 কোড, বা অন্যান্য সন্দেহজনক কোড ব্লক ফিল্টার করে। স্যানিটাইজেশন সাধারণত ইনপুট পাস করার আগে করা হয়, যাতে নিরাপত্তার দিক থেকে কোন ঝুঁকি না থাকে।
স্যানিটাইজেশন করার কিছু সাধারণ পদ্ধতি:
- HTML এফেক্টিভ চিহ্নগুলিকে পাল্টানো (যেমন <, >, &, " ইত্যাদি)
- SQL ইনজেকশন থেকে রক্ষা পাওয়া
- 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) আক্রমণ। এই দুটি পদ্ধতি একসাথে ব্যবহার করে আপনি নিরাপদ এবং সঠিক ইনপুট প্রসেসিং নিশ্চিত করতে পারেন।
Read more