পোস্টগ্রিসে কি এসকিউএল ইঞ্জেকশন থেকে রক্ষা করার প্রক্রিয়া হিসাবে সমালোচনা এবং ব্যবহারকারী নির্ধারিত ফাংশন সমান ?
অন্য পদ্ধতির একটি পদ্ধতির বিশেষ সুবিধা আছে?
পোস্টগ্রিসে কি এসকিউএল ইঞ্জেকশন থেকে রক্ষা করার প্রক্রিয়া হিসাবে সমালোচনা এবং ব্যবহারকারী নির্ধারিত ফাংশন সমান ?
অন্য পদ্ধতির একটি পদ্ধতির বিশেষ সুবিধা আছে?
উত্তর:
এটা নির্ভর করে.
সহ LANGUAGE sql
, উত্তরটি হ্যাঁ হয় ।
উত্তীর্ণ প্যারামিটারগুলি মান হিসাবে গণ্য করা হয় এবং এসকিউএল-ইনজেকশন সম্ভব না - যতক্ষণ আপনি শরীর থেকে অনিরাপদ ফাংশনগুলি কল করবেন না এবং প্যারামিটারগুলি পাস করবেন।
সহ LANGUAGE plpgsql
, উত্তরটি সাধারণত হ্যাঁ হয় ।
যাইহোক , পিএল / পিজিএসকিউএল ডায়নামিক এসকিউএলকে অনুমতি দেয় যেখানে পাস হওয়া প্যারামিটারগুলি (বা অংশগুলি) একটি কোয়েরি স্ট্রিংয়ের সাথে সংযুক্ত করা হয় এবং এর সাথে সম্পাদন করা হয় EXECUTE
। এটি ব্যবহারকারীর ইনপুটকে এসকিউএল কোডে রূপান্তর করতে পারে এবং এসকিউএল ইঞ্জেকশনটিকে সম্ভব করে তোলে । ফাংশন বডিটি সঠিকভাবে পরিচালনা করে কিনা তা আপনি বাইরে থেকে বলতে পারবেন না। সরঞ্জাম সরবরাহ করা হয়।
যেখানে আপনার প্রয়োজন সেখানে কেবল গতিশীল এসকিউএল ব্যবহার করুন। মান হিসাবে প্যারামিটার ব্যবহার করে সাদমান এসকিউএল স্টেটমেন্টগুলি এসকিউএল ফাংশনগুলির মতো এসকিউএল ইঞ্জেকশনের বিরুদ্ধে নিরাপদ।
জন্য গতিশীল এসকিউএল , বিশেষ করে পাস মান সঙ্গে মান হিসাবে:
USING
দফা। উদাহরণ ।অধ্যক্ষের পক্ষে এসকিউএল ইঞ্জেকশনটিকে অসম্ভব করে তোলে।
আপনি যদি এসকিউএল স্ট্রিংয়ে মানগুলি একত্রীকরণ করেন তবে ব্যবহার করুন:
একক উদ্ধৃতিতে স্ট্র্যাপ মোড়ানোনিরাপদে , এর ফলে বাক্য গঠন ত্রুটি এবং এসকিউএল ইঞ্জেকশন এড়ানো হবে।
প্রক্রিয়া পরামিতি যা এসকিউএল স্ট্রিংয়ের সাথে সনাক্তকারী হিসাবে বিবেচিত হবে :
format()
বিন্যাস নির্দিষ্টকরণকারক সহ%I
। উদাহরণ ।quote_ident()
। উদাহরণ ।regclass
টেবিল নামের জন্য: _tbl::regclass
। উদাহরণ ।নিরাপদে নিরাপদে ডাবল- কোটে স্ট্রিংগুলি সংযুক্ত করেযেখানে প্রয়োজন সেখানে , এর ফলে বাক্য গঠন ত্রুটি এবং এসকিউএল ইঞ্জেকশন এড়ানো হবে।
সম্পর্কিত:
ব্যবহারকারীর ইনপুট থেকে কখনও স্ট্রিং তৈরি করবেন না এবং চালান। এটিতে শনাক্তকারীদের অন্তর্ভুক্ত রয়েছে যা সরাসরি কোনও ব্যবহারকারী দ্বারা পাস করা হয় বা সিস্টেম ক্যাটালগ থেকে আনা হয়। সবগতিশীল এসকিউএল তৈরি করার সময় ব্যবহারকারীর ইনপুটের মতো আচরণ করতে হবে এবং নিরাপদে উদ্ধৃতি দিতে হবে!
এই সম্পর্কিত উত্তরের কর্মক্ষমতা জড়িত সম্পর্কে আরও :
এসকিউএল-ইনজেকশনের মূল বিষয়গুলি:
অনুরূপ বিবেচনাগুলি অন্যান্য সার্ভার-সাইড ভাষাগুলিতে প্রয়োগ হয় যা গতিশীল এসকিউএলকে অনুমতি দেয়।
USING
মানগুলি পাস করার জন্য এই ধারাটি ব্যবহার করুন EXECUTE
। আপনি কোনও এসকিউএল ফাংশন এবং প্যারামিটারগুলির মধ্যে থেকে একটি পিএল / পিজিএসকিউএল ফাংশন কল করতে পারেন । সুতরাং, একেবারে সঠিক হতে হবে, আপনি যতক্ষণ না কোনও অনিরাপদ ফাংশন প্রত্যক্ষ বা অপ্রত্যক্ষভাবে কল না করেন ততক্ষণ আপনি নিরাপদ। আপনার সমস্ত ফাংশন যদি সঠিকভাবে করা হয় তবে তা ঘটতে পারে না।