نمایش نتایج 1 تا 18 از 18

نام تاپیک: mysql_real_escape_stringو... کی حذف میشن؟

  1. #1

    mysql_real_escape_stringو... کی حذف میشن؟

    سلام.
    دوستان من مجبور شدم تو اسکریپتم از این کد استفاده کنم:

    mysql_real_scape_stirng

    ولی در php.net زده این تابع حذف خواهد شد! سوالی که دارم اینه که کی حذف میشه؟(اگه مثلا یه چند ماهی بشه تا بتونم mysqli یاد بگیرم خوبه )

    بعد برای جلوگیری از sql injection راه بهتری سراغ دارید؟(به جز addslashes)

  2. #2
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    مستندات پی اچ پی
    mysqli رو بخون
    زیر دو ساعت یاد میگیری .
    5 تا متد داره ، استفاده کن .

  3. #3

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    با سلام، دوست گرامی، این تابع به این زودی حذف نخواهد شد، بلکه منسوخ میشه. نه تنها این تابع، بلکه کلاً Extension مربوط بهش یعنی mysql حذف میشه و بجاش باید از PDO یا MySQLi استفاده کنید. همیشه هم روال تیم توسعه PHP این بوده (و خواهد بود) که تا چند ماه بعد از اعلام تغییرات (هنوز که تغییری رخ نداده اما اگه رخ بده هم باز تا چند ماه بعدش) توابع قبلی رو تحت عنوان Backward Compatibility پشتیبانی میکنه تا طراحان و توسعه دهندگان قبلی، فرصت سازگاری با نسخه جدید رو داشته باشن. نگران نباشین، اینجا قلمرو مایکروسافت نیست که بدون هماهنگی و رعایت حقوق برنامه نویسان، هر تغییری بخوان ایجاد کنن. ضمناً برای جلوگیری از SQL Injection بهترین راه، استفاده از addslashes (درصورت روشن بودن Magic Quotes) و بعد Escapeکردن با mysql_real_escape_string هست. البته توی MySQLi و PDO عمل Escape یه جورایی توکار شده.

  4. #4

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    همیشه هم روال تیم توسعه PHP این بوده (و خواهد بود) که تا چند ماه بعد از اعلام تغییرات (هنوز که تغییری رخ نداده اما اگه رخ بده هم باز تا چند ماه بعدش) توابع قبلی رو تحت عنوان Backward Compatibility پشتیبانی میکنه تا طراحان و توسعه دهندگان قبلی، فرصت سازگاری با نسخه جدید رو داشته باشن.
    فقط چند ماه؟
    نه فکر میکنم چند سال خیلی عادی باشه در این زمینه.
    مسخره که نشده این همه برنامه و برنامه نویس که از روش قدیمی استفاده کردن.
    هیچ ضرورتی نداره برنامه های قدیمی به این سرعت تغییر کنن یا اصلا تغییر کنن!!

  5. #5
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    اگه نخوای پی اچ پی رو آپدیت کنی ، خب این مشکل پیش نمیاد .
    فکر کنم حالا حالاها از php5.3 پشتیبانی بشه .

    راستی یکی از مزایای برنامه نویسی شی گرایی اینه که توی همچین مواقعی ، فقط کلاس دیتابیس رو تغییر میدی اونم یکی دو ساعت طول میکشه فقط

  6. #6
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    سن
    37
    پست
    732

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    دوستان فرض کنیم که اصلا قرار حذف بشه !
    این تابع جایگزینی داره یا نه ؟!
    مثلا به قول آقای شهرکی بجای این تابع از Addslashes استفاده کنیم و بعد از stripslashes ؟!
    این رو واسه این میگم که اصلا گیریم 2 سال دیگه این اتفاق افتاد ! به هر حال برای یه مدتی وب سایت به مشکل نخوره !
    راه داره آیا ؟!

  7. #7

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    نقل قول نوشته شده توسط rezaonline.net مشاهده تاپیک
    اگه نخوای پی اچ پی رو آپدیت کنی ، خب این مشکل پیش نمیاد .
    فکر کنم حالا حالاها از php5.3 پشتیبانی بشه .
    حتی اگر آپدیت هم کنی نباید به این زودیها حذف بشه.
    ممکنه نیاز باشه نسخهء PHP رو بخاطر یک باگ امنیتی آپدیت کنی یا به علل دیگه که بعضیاش تحت کنترل همیشگی برنامه نویس و کاربر نیست.
    قرار نیست مثلا برای استفاده از یک برنامهء قدیمی در پیدا کردن یک هاست که نسخهء PHP سازگار با برنامه رو داشته باشه به این دلیل به مشکل بخوریم.
    برنامهء جا افتاده و بدون مشکلی که داره کار میکنه رو کسی نباید با این دلایل سطحی و غیرضروری از کار بندازه. بازنگری و تغییر این همه برنامه که به این سادگی و همیشه ممکن نیست! گذشته از اینکه معقول و به صرفه هم نیست.

    بطور معمول از امکانات Obsolete شده تا چند سال پشتیبانی میشه.
    در خیلی موارد اصلا تا مدتهای مدید (حتی بیش از 10 سال، و در مواردی حتی تا چند دهه) و حتی نسلهای متعددی از زبان برنامه نویسی، اون ویژگی حذف نمیشه و فقط برچسب Obsolete میخوره، و برای اطمینان بیشتر از آگاهی برنامه نویسان ممکنه موقع استفاده پیام هشداری چیزی بده موقع اجرا و/یا در محیطهای برنامه نویسی.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    ایران، شیراز، ... ، خونمون، روبروی مانیتور
    پست
    539

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    ضمناً برای جلوگیری از SQL Injection بهترین راه، استفاده از addslashes (درصورت روشن بودن Magic Quotes) و بعد Escapeکردن با mysql_real_escape_string هست. البته توی MySQLi و PDO عمل Escape یه جورایی توکار شده.
    It's highly recommended to use DBMS specific escape function (e.g. mysqli_real_escape_string() for MySQL or pg_escape_string() for PostgreSQL), but if the DBMS you're using doesn't have an escape function and the DBMS uses \ to escape special chars, you can use this function.
    این متن سایت PHP هست...
    طبق این حرف آیا mysql_real_escape_strinf کفایت نمیکنه؟
    من متوجه نمیشم که چرا باید از addslashes استفاده کنیم؟

  9. #9
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    ممکنه نیاز باشه نسخهء PHP رو بخاطر یک باگ امنیتی آپدیت کنی یا به علل دیگه که بعضیاش تحت کنترل همیشگی برنامه نویس و کاربر نیست.
    فیکس باگ ها تغییری روی ورژن ندارن ، ساب ورژن رو تغییر میدن . php5.3.8 , php5.3.19 اینا همشون php5.3 هستن

  10. #10
    کاربر دائمی آواتار Unique
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    ایران - اصفهان
    پست
    3,199

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    این طبیعی هست که مرور زمان mysql و کلا extension هایی که براشون extension های قوی تری اومده حذف بشوند ! مشکل برای کسانی پیش میاد که اسپاگتی کد میزنن وگرنه برای کسایی که از کلاس ها استفاده میکنند ، مثلا کل عملیات ارتباط با پایگاه و اجرای query ها و مقادیر واکشی شده را از روی یک کلاس انجام میدهند تنها تغییر براشون به روز کردن اون کلاس هست (صحبی که آقا رضا البته گفتند) ، پس سعی کنید به مرور زمان نوع کد نویسی را از وابستگی در بیارین بعدش هر چیزی تغییر منه توی سه سوت میشه upgrade کرد !

  11. #11
    منتظر تایید آدرس ایمیل
    تاریخ عضویت
    بهمن 1387
    سن
    37
    پست
    732

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    یک سوال دارم !
    من زیاد با کلاس نویسی آشنا نیستم ! ( بلدم اما نه کلاس های پیچیده رو )
    وب سایتم هم نیازی به برنامه نویسی شی گرا نداره به اون صورت ! یعنی زیاد حاد نیست ( البته نه به این منظور که شی گرایی چیز خاصی هست که من نیاز ندارم )
    در کل میخوام بدونم مثلا برای Login - Register کردن و یه سری ازین موارد اگر تابع نویسی کنم در یک فایل و بعد در جاهای مورد نیاز اون ها رو استفاده کنم کافی هست یا نه - حتما باید از شی گرایی استفاده شه !
    چون توی اکثر کلاس ها بیشتر با توابع کار شده یعنی اون چیزهایی که مورد نیاز من هست !
    خوب ازونجایی که منم با کلاس نویسی زیاد رابطه ای ندارم مشکلی نیست اگر تابع نویسی کنم ؟!
    فرق زیادی داره ؟!

  12. #12

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    همون توابع هم کافی هستن. شئ گرایی بیشتر یک ابزار کمکی هست برای مدیریت راحت تر کد در پروژه های بزرگ.

  13. #13
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    فکر کنم این مبحث رو یکبار دیگه دوستان مطرح کرده بودن ، که من گفتم شی گرایی امکانات بیشتری داره و کاری به فانکشال نداره .
    انواع دیزاین پترن رو مطالعه کنید
    http://rezaonline.net/blog/dlink/12/...sign-Patterns/

    با هر کدوم که راحت بودید بر اون اساس برنامه تون رو پیاده کنید .
    من برای کسائی مثل شما که با MVC کار نکردن ، Factory رو پیشنهاد میکنم ، خیلی ساده است برای هر کاری یک کلاس بنویسید!

    داشتم یه مطلب توی وبلاگم مینوشتم در مورد ساخت آدرسهایی بصورت site.ir/index.php/post/id/1 که با oop و کمی خلاقیت قابل پیاده هست بدون نیاز به htaccess .
    اگه وقت کنم میذارم توی انجمن .

  14. #14

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    نقل قول نوشته شده توسط rezaonline.net مشاهده تاپیک
    فیکس باگ ها تغییری روی ورژن ندارن ، ساب ورژن رو تغییر میدن . php5.3.8 , php5.3.19 اینا همشون php5.3 هستن
    تاجاییکه دیدم بعضی وقتا مواردی هست که به نسخهء بعدی موکول میشن.

  15. #15

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    آيا در MySqli هم بايد رشته ها رو escape كرد براي جلوگيري از SqlInjection؟
    يا خود اين كلاس اين كارو انجام ميده و ديگه نيازي نيست ما اين كارو انجام بديم؟

  16. #16
    کاربر دائمی
    تاریخ عضویت
    آبان 1390
    محل زندگی
    http://reza.biz
    پست
    858

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    از قابلیت statment استفاده کنید .

  17. #17

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    نقل قول نوشته شده توسط rezaonline.net مشاهده تاپیک
    از قابلیت statment استفاده کنید .
    من جواب سوالمو نگرفتم .. آیا خود MySqli اینکارو میکنه ؟ و اینکه آیا کافی هست برای جلوگیری از حملات؟
    در مورد قابلیت Statment و نحوه کارکردش هم،اگه میشه بیشتر توضیح بدید؟

  18. #18

    نقل قول: mysql_real_escape_stringو... کی حذف میشن؟

    با سلام، اینجا رو ببینید.

تاپیک های مشابه

  1. حذف پوشه
    نوشته شده توسط مصطفی61 در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 10
    آخرین پست: چهارشنبه 14 اردیبهشت 1390, 20:16 عصر
  2. چگونگی حذف تمام اطلاعات داخل یک جدول در بیسیک
    نوشته شده توسط ahmad_rabie2002 در بخش VB.NET
    پاسخ: 2
    آخرین پست: چهارشنبه 13 آذر 1387, 17:32 عصر
  3. حذف فیزیکی
    نوشته شده توسط شفیعی در بخش VB.NET
    پاسخ: 3
    آخرین پست: جمعه 25 اردیبهشت 1383, 12:21 عصر
  4. حذف یک رکورد
    نوشته شده توسط shsoft در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 6
    آخرین پست: سه شنبه 18 شهریور 1382, 13:37 عصر
  5. حذف رکوردهای فیلتر شده از یک table
    نوشته شده توسط Gladiator در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 3
    آخرین پست: پنج شنبه 15 اسفند 1381, 10:16 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •