آژانس هواپیمایی
pop up

escapeshellarg

شروع موضوع توسط sasan_66 ‏15 نوامبر 2007 در انجمن PHP

  1. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    سلام
    مي دونم اين تابع چي كار ميكنه ولي ميخوام يه نمونه كد ببينم كه بدون استفاده از اين تابع مثلا يه هكر بتونه يه كاري بكنه
    خوب اين تابع مياد آرگومان خودش رو درون ' ' قرار ميده كه باعث ميشه ورودي به عنوان يك دستور باشه.
    خوب چه جوري اين كار جلوي هكر رو ميگيره
     
  2. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,938
    تشکر شده:
    59
    ورودی رو تبدیل به STRING می کنه. یعنی ورودی دیگه دستور (STATEMENT) نیست و فقط یک STRING ساده است..
     
  3. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    ببينيد مثلا يه فرم داريم كه نام فايل رو ميگيره و اونو توي متغير ذخيره مي كنه. حالا با اسم اون فايل مياد يه دستوري رو اجرا ميكنه.. حالا اگه يه هكر بياد هم نام فايل رو توي فرم بنويسه و بعد اون يه ; بذاره و يه دستوري مثل دستور rm بنويسه توي سيستم هاي يونيكس باعث ميشه كه اين ورودي به عنوان 2 دستور تلقي شه كه براي رفع اين مشكل از ايت تابع استفاده ميشه. من ميخوام بدون استفاده از اين تابع اين كار رو روي سيستم ويندوز انجام بدم ولي هيچي نميشه. چرا؟
     
  4. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,938
    تشکر شده:
    59
    این کاملا مشخصه چون دستوراتی مثل rm یا ls و یا ... در ویندوز هیچ اعتباری ندارند ....
     
  5. sasan_66

    sasan_66 کاربر تازه وارد

    تاریخ عضویت:
    ‏18 جولای 2006
    نوشته ها:
    450
    تشکر شده:
    0
    خوب rm يا ls يه مثاله
    مثلا دستور rename, dir كه براي ويندوز اعتبار داره چي؟
     
  6. متالیک

    متالیک Registered User

    تاریخ عضویت:
    ‏31 مارس 2007
    نوشته ها:
    1,938
    تشکر شده:
    59
    این دستورات برای ویندوز اعتبار داره درست ولی این نوع دستوراتی که با ; از هم جدا می شوند برای ویندوز اعتباری ندارد: h:/www/webroot;dir
     
  7. boxilink