آیا چیزی وجود دارد که بعد از بند "ORDER BY" قرار داده شود که خطر امنیتی داشته باشد؟

اساساً ، کاری که می خواهم انجام دهم این است:

mysql_query("SELECT ... FROM ... ORDER BY $_GET[order]")

بدیهی است که با قرار دادن غیرمعنی در آن به راحتی می توانند یک خطای SQL ایجاد کنند ، اما mysql_query فقط به شما امکان می دهد 1 را اجرا کنید پرس و جو ، بنابراین آنها نمی توانند چیزی مانند 1 قرار دهند. قطره قطره ... .

آیا به غیر از ایجاد خطای نحوی ، کاربر مخربی می تواند خسارتی وارد کند؟

در این صورت ، چگونه می توانم پرس و جو را سالم سازی کنم؟

منطق زیادی بر روی $ _ GET [] ساخته شده است متغیر 'order'] در نحو SQL مانند است ، بنابراین من واقعاً نمی خواهم قالب را تغییر دهم.


برای روشن کردن ، $ _ GET ['order'] فقط کار نمی کند یک میدان / ستون واحد باشد. ممکن است چیزی مانند last_name DESC ، first_name ASC باشد.

24
задан Paul Sonier 12 July 2011 в 02:39
поделиться