আমি এটি যেভাবে দেখছি, এসকিউএল ইঞ্জেকশন আক্রমণগুলি এর দ্বারা প্রতিরোধ করা যেতে পারে:
- সাবধানতার সাথে স্ক্রিনিং, ফিল্টারিং, এনকোডিং ইনপুট (এসকিউএল প্রবেশের আগে)
- প্রস্তুত বিবৃতি / প্যারামিটারাইজড কোয়েরি ব্যবহার করে
আমি অনুমান করি যে প্রত্যেকের পক্ষে মতামত রয়েছে, তবে # 2 কেন ইনজেকশন আক্রমণ প্রতিরোধের জন্য আরও বেশি বা কম উপায় হিসাবে বিবেচিত হবে? এটি কি নিরাপদ এবং ত্রুটির প্রবণতা কম বা অন্য কারণগুলি ছিল?
আমি যেমন বুঝতে পেরেছি, যদি # 1 টি সঠিকভাবে ব্যবহৃত হয় এবং সমস্ত সতর্কতামূলক যত্ন নেওয়া হয় তবে এটি # 2 এর মতো কার্যকর হতে পারে।
স্যানিটাইজিং, ফিল্টারিং এবং এনকোডিং
স্যানিটাইজিং , ফিল্টারিং এবং এনকোডিংয়ের অর্থের মধ্যে আমার পক্ষ থেকে কিছু বিভ্রান্তি ছিল। আমি বলব যে আমার উদ্দেশ্যে, উপরের সমস্তটি বিকল্প 1 হিসাবে বিবেচনা করা যেতে পারে this এক্ষেত্রে আমি বুঝতে পারি যে স্যানিটাইজিং এবং ফিল্টারিংয়ের ইনপুট ডেটা সংশোধন বা বাতিল করার সম্ভাবনা রয়েছে , যখন এনকোডিংটি ডেটা যেমন রয়েছে তেমন সংরক্ষণ করে তবে এটি এনকোড করে রাখে ইনজেকশন আক্রমণ এড়াতে সঠিকভাবে। আমি বিশ্বাস করি যে এস্কেপিং ডেটা এটিকে এনকোড করার একটি উপায় হিসাবে বিবেচনা করা যেতে পারে।
প্যারামিটারাইজড কোয়েরি বনাম এনকোডিং লাইব্রেরি
এমন উত্তর রয়েছে যেখানে ধারণাগুলি parameterized queries
এবং encoding libraries
সেগুলি বিনিময়যোগ্য হিসাবে বিবেচনা করা হয়। আমি ভুল হলে আমাকে সংশোধন করুন, তবে আমি মনে করি যে তারা আলাদা।
আমার বোধগম্যতা হ'ল encoding libraries
, তারা সবসময় এসকিউএল "প্রোগ্রাম" সংশোধন করার সম্ভাবনা রাখে না কেন , তারা আরডিবিএমএস পাঠানোর আগেই এসকিউএল নিজেই পরিবর্তন করে চলেছে।
Parameterized queries
অন্যদিকে, এসকিউএল প্রোগ্রামটি আরডিবিএমএসে প্রেরণ করুন, যা কোয়েরিটি অনুকূল করে তোলে, ক্যোয়ারি এক্সিকিউশন প্ল্যানকে সংজ্ঞায়িত করে, ব্যবহার করতে হবে এমন সূচীগুলি নির্বাচন করে এবং তারপর আরডিবিএমএসের অভ্যন্তরের শেষ পদক্ষেপ হিসাবে ডেটা প্লাগ ইন করে নিজেই।
এনকোডিং লাইব্রেরি
data -> (encoding library)
|
v
SQL -> (SQL + encoded data) -> RDBMS (execution plan defined) -> execute statement
প্যারামিটারাইজড ক্যোয়ারী
data
|
v
SQL -> RDBMS (query execution plan defined) -> data -> execute statement
.তিহাসিক তাৎপর্য
কিছু উত্তরে উল্লেখ করা হয়েছে যে historতিহাসিকভাবে, প্যারামিটারাইজড কোয়েরিগুলি (পিকিউ) পারফরম্যান্সের কারণে তৈরি করা হয়েছিল এবং ইনজেকশন আক্রমণের আগে লক্ষ্যযুক্ত এনকোডিংয়ের সমস্যা জনপ্রিয় হয়েছিল। এক পর্যায়ে এটি স্পষ্ট হয়ে যায় যে ইনজেকশন আক্রমণগুলির বিরুদ্ধে পিকিউও বেশ কার্যকর ছিল। আমার প্রশ্নের স্পিরিট ধরে রাখতে, এসকিউএল ইঞ্জেকশন আক্রমণ রোধ করার ক্ষেত্রে পিকিউ কেন পছন্দনীয় পদ্ধতি থেকে রইল এবং কেন এটি অন্যান্য অন্যান্য পদ্ধতির চেয়ে বেশি বেড়ে উঠল?