Re: How To Limit FIle Uploader Against Hijackers?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



What do you mean by session variables?
I should register a new session and pass it along with the file to the PHP
wrapper?

On Sat, May 30, 2009 at 10:02 PM, Michael A. Peters <mpeters@xxxxxxx> wrote:

> Nitsan Bin-Nun wrote:
>
>>
>>
>> On Sat, May 30, 2009 at 7:02 PM, Ashley Sheridan <
>> ash@xxxxxxxxxxxxxxxxxxxx <mailto:ash@xxxxxxxxxxxxxxxxxxxx>> wrote:
>>
>>    On Sat, 2009-05-30 at 17:54 +0200, Nitsan Bin-Nun wrote:
>>     > That's the verification that my layer does. I'm not sure whether
>>    that's
>>     > enough or not.
>>     >
>>     > On Sat, May 30, 2009 at 4:43 PM, Michael A. Peters
>>    <mpeters@xxxxxxx <mailto:mpeters@xxxxxxx>> wrote:
>>     >
>>     > > Nitsan Bin-Nun wrote:
>>     > >
>>     > >  On Sat, May 30, 2009 at 3:26 PM, Michael A. Peters
>>    <mpeters@xxxxxxx <mailto:mpeters@xxxxxxx><mailto:
>>
>>     > >> mpeters@xxxxxxx <mailto:mpeters@xxxxxxx>>> wrote:
>>     > >>
>>     > >>    Nitsan Bin-Nun wrote:
>>     > >>
>>     > >>        Hi
>>     > >>
>>     > >>        I have wrote a file uploader in PHP, and I don't want
>>    people to
>>     > >>        hijack it
>>     > >>        (get direct links, download whenever they want, etc).
>>     > >>
>>     > >>        Currently I have placed the uploaded files one
>>    directory up from
>>     > >>        the www
>>     > >>        root, and I'm hosting the files mime type in order to
>>    serve them
>>     > >>        on the fly.
>>     > >>
>>     > >>        I'm trying to think how should I secure this website, I
>>    don't
>>     > >>        want people to
>>     > >>        get direct links,etc.
>>     > >>
>>     > >>        Currently the links are being check with the
>>    $_SERVER['refer']
>>     > >>        variables and
>>     > >>        it being compared to the one in my config file.
>>     > >>
>>     > >>        Any ideas will be very appreciated! Thanks!
>>     > >>
>>     > >>
>>     > >>        By the way, does this file serving feature takes a lot
>>    of load
>>     > >>        from the
>>     > >>        server? if so then what are the other options? can I
>>    serve these
>>     > >>        files w/o
>>     > >>        PHP involved? lets say only by some sort of apache
>>    module or
>>     > >>        anything like
>>     > >>        that?
>>     > >>
>>     > >>
>>     > >>    What I do -
>>     > >>
>>     > >>    Files for restricted access are outside the web root.
>>     > >>    php wrapper script verifies the credentials of user to
>>    download the
>>     > >>    file (IE via a post token, session ID, etc.) and if
>>    allowed, it then
>>     > >>    sends the real file.
>>     > >>
>>     > >>    I use mod_rewrite (apache) to send requests for the real
>>    file to the
>>     > >>    php wrapper script so that the linked file has the same
>>    name as the
>>     > >>    real file (lets me use the same wrapper for lots of
>>    different files).
>>     > >>
>>     > >>    As far as load on the server, no - I don't think it costs a
>>    lot as
>>     > >>    far as system resources.
>>     > >>
>>     > >>
>>     > >>
>>     > >> Thank you for the fast answer.
>>     > >>
>>     > >> I'm doing the same regarding the php wrapper layer, but the
>>    thing is that
>>     > >> I just don't know what verification exams should I do in the
>>    php wrapping
>>     > >> layer.
>>     > >> I'm not sure what is the way that it should be done.
>>     > >>
>>     > >
>>     > > I check the referrer, assuming no other credential is required,
>>    if it is
>>     > > from an approved site or not sent (some people disable sending the
>>     > > http_referrer in their browser), I allow it. Otherwise I don't.
>>     > >
>>    That should be fine for downloading files. There will be an issue if
>>    they are media files and you want to play them from a browser plugin,
>> as
>>    no plugin I've ever seen actually passes the referrer header.
>>
>>
>>    Ash
>>    www.ashleysheridan.co.uk <http://www.ashleysheridan.co.uk>
>>
>>
>>
>> I'm sending downloading headers, there will be no options of playing it
>> from the browser's plugin.
>> Thank you both for your comments. I have decided that referrer check is
>> enough for now :)
>>
>> Nitsan
>>
>>
> If you really want to be sure, you can use session variables with a
> download wrapper.
>

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux