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

نام تاپیک: راهنمایی برای امن کردن کد php

  1. #1

    راهنمایی برای امن کردن کد php

    سلام

    <?php

    header("Content-Type: application/force-download");
    header("Content-Disposition: attachment; filename=\"".$_GET['name']."\"");
    $file_content = file_get_contents($_GET['name']);
    echo $file_content;

    ?>


    کد بالا داری مشکل امنیتی LFI هست یعنی راحت میشه به صورت زیر ازش سو استفاده کرد
    localhost/file.php?name=../../../../../etc/passwd

    سوال بنده اینه چطور میتونم این کد رو امن کنم؟ یعنی کاری کنم که فقط پسوند zip رو دانلود کنه و هر پسوند دیگه به هر شکلی وارد شد ارور بده و اجازه دانلود نده

    پشاپیش ممنون

  2. #2

    نقل قول: راهنمایی برای امن کردن کد php

    واقعا اینجا انجمن برنامه نویسیه؟

  3. #3
    کاربر دائمی آواتار metal gear solid 4
    تاریخ عضویت
    مهر 1387
    محل زندگی
    مشهد
    پست
    307

    نقل قول: راهنمایی برای امن کردن کد php


    $filename = 'filename.zip';

    $valid = array( 'zip' );

    if ( in_array( pathinfo( $filename )['extension'], $valid ) )
    echo 'OK';

  4. #4
    کاربر دائمی آواتار engmmrj
    تاریخ عضویت
    مرداد 1391
    محل زندگی
    تهران
    پست
    1,146

    نقل قول: راهنمایی برای امن کردن کد php

    pathinfo( $filename )['extension']

    به این صورت تو بعضی از سرور ها با error مواجه میشین من خودم یک پروژه نوشته بودم که به همین روش استفاده کرده بودم وقتی که پروژه رو آپلود کردم با error مواجه شدم !

  5. #5

    نقل قول: راهنمایی برای امن کردن کد php

    با سلام البته شاید یه خورده دیر باشه اما با این قطعه کد می تونید extension رو چک کنید. البته اگر منظورتون رو درست متوجه شده باشم.


    $path = "/home/test/test.zip"; // masir ya khude file

    if(ChekZip($path)) // ejaze be download dar surate true budan
    echo 'Download';

    function ChekZip($path)
    {
    $ZipFile = pathinfo($path);
    if($ZipFile['extension'] == 'zip')
    return true; // megadr true dar surate zip budan
    else
    return false; // megdar false dar surate zip nabudan
    }


    100 البته با تابع mime_content_type هم می شه نوع فایل رو به صورت زیر مشخص کرد :


    $path = "/home/test/test.zip";
    $ZipFile = mime_content_type($path);
    if($ZipFile == 'application/zip')
    return true;

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

  1. راهنمایی برای درست کردن یک بانک اطلاعاتی
    نوشته شده توسط vahid_d_0101 در بخش Windows Phone و Windows Mobile
    پاسخ: 2
    آخرین پست: سه شنبه 20 فروردین 1392, 22:43 عصر
  2. برنامه ای برای trace کردن کدهای php
    نوشته شده توسط amirhosein در بخش PHP
    پاسخ: 3
    آخرین پست: پنج شنبه 27 مرداد 1390, 12:21 عصر
  3. راهنمایی برای جدا کردن اعداد؟!
    نوشته شده توسط Heidari66 در بخش برنامه نویسی در 6 VB
    پاسخ: 16
    آخرین پست: چهارشنبه 16 تیر 1389, 23:45 عصر

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

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