PDA

View Full Version : سوال: mysql یا mysqli یا PDO ?



AliRezaPro
چهارشنبه 19 تیر 1392, 23:39 عصر
سلام
فکر کنم استفاده از mysql و mysqli خطرsqlInjection رو در پیش داشته باشه درسته ؟
PDO بهتر از بقیه است ؟

parsboy
پنج شنبه 20 تیر 1392, 00:04 صبح
سلام. مسلما PDO قدرتمندتر و برتر از MySQLi است که در این مورد هم مقالاتی در نت هست.
در PDO می‌توان بجای escape string از متد quote استفاده کرد اما PDO و MySQLi مفهوم بهتری به نام «پارامتری کردن» را معرفی کرده‌اند که امنیت آن بالاتر و خیال شما هم آسوده‌تر می‌شود. مثلا شما به PDO می‌گویید که کوئری من این است:

SELECT * FROM `news` WHERE `category`=? AND `language`=?
دو پارامتر زبان و دسته را به صورت جداگانه به آن می‌دهید. لذا PDO خودش می‌داند که با آن متغیرها چه کند که با کوئری تداخلی ایجاد نشود که منجر به اینجکشن شود.

زمانی که صحبت از PDO یا MySQLi یا escape string می‌کنیم، منظورمان حفاظت بانک در برابر اینجکشن است که همین‌ها کافی است و تابع strip tag ربطی به این موضوع (حملات اینجکشن) ندارد و مربوط به بحث دیگری به نام حملات xss است که قبل از چاپ (بعد از اجرای کوئری و گرفتن نتیجه آن) باید به آن پرداخت و گفتیم که htmlpurifier بهترین روش برای پاکسازی html ارسال شونده به براوزر کاربر از نظر حملات xss (دزدیدن کوکی و ...) است.
موفق باشید.

h.rezaee
پنج شنبه 20 تیر 1392, 12:43 عصر
سلام . مسلما بهتر است. البته از PDO بیشتر برای ایجاد ارتباط با بانکهای اطلاعاتی مختلف با کوچکترین تغییر استفاده می کنند ( البته تا اونجایی که بنده اطلاع دارم ) . برای جلو گیری از SQL Injectionبهتره از Store Procedureاستفاده کنید. موفق باشید.

sahebgharan
پنج شنبه 20 تیر 1392, 13:00 عصر
اینم بخونین بدک نیست: http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/