توابع مربوط به دسترسی به پایگاهداده در زبان PHP دارای استاندارد یکپارچهای نیستند. این موضوع باعث میشود که کار با پایگاهدادههای مختلف پیچیده و زمانبر شود. به همین دلیل، وجود یک کتابخانهی جامع برای مدیریت پایگاهدادهها ضروری است تا بتواند تفاوتهای بین پایگاهدادههای مختلف را پنهان کرده (کپسولهسازی کند) و امکان جابهجایی آسان بین آنها را فراهم سازد.
کتابخانهی ADOdb با هدف ایجاد یک لایهی انتزاعی بین برنامهی PHP و سیستمهای پایگاهداده ساخته شده تا برنامهنویسان بتوانند بدون وابستگی مستقیم به نوع پایگاهداده، کوئریهای خود را اجرا کرده و دادهها را مدیریت کنند. این کتابخانه در حال حاضر از مجموعهای گسترده از پایگاهدادهها پشتیبانی میکند، از جمله:
- MySQL
- Firebird & Interbase
- PostgreSQL
- SQLite3
- Oracle
- Microsoft SQL Server
- Foxpro ODBC
- Access ODBC
- Informix
- DB2
- Sybase
- Sybase SQ
- L Anywhere
- Generic ODBC
- Microsoft's ADO
در نسخههای قبل از 5.22.9 این کتابخانه یک آسیبپذیری بحرانی وجود دارد. این مشکل به دلیل عدم گریز صحیح (Improper Escaping) پارامترهای ورودی در کوئریها به وجود میآمد. در صورتی که برنامهنویس از تابع pg_insert_id() به همراه دادههایی که مستقیماً از کاربر دریافت شدهاند استفاده میکرد و به پایگاهداده PostgreSQL متصل بود، مهاجم میتوانست از این آسیبپذیری سوءاستفاده کرده و دستورات دلخواه SQL را اجرا کند. این نقص امنیتی در نسخهی 5.22.9 برطرف شده است.
محصولات آسیبپذیر
نسخههای آسیبپذیر عبارتند از:
- تمام نسخههای قبل از 5.22.9
توصیههای امنیتی
- به کاربرانی که از این کتابخانه استفاده میکنند توصیه میشود به نسخهی 5.22.9 بهروزرسانی کنند.
منبع خبر:
- 24