Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #10035

Re: Sandbox

From Jerry Stuckle <jstucklex@attglobal.net>
Newsgroups comp.lang.php
Subject Re: Sandbox
Date 2013-07-05 15:07 -0400
Organization A noiseless patient Spider
Message-ID <kr756b$dlo$1@dont-email.me> (permalink)
References <7a68d12f-b9f2-4367-b373-f6be14b9994b@googlegroups.com> <kr6dlm$94g$1@dont-email.me> <b3oa93Fbn7U1@mid.individual.net> <kr6tba$v2g$1@dont-email.me> <b3oebaF17k8U1@mid.individual.net>

Show all headers | View raw


On 7/5/2013 1:33 PM, J.O. Aho wrote:
> On 05/07/13 18:53, Jerry Stuckle wrote:
>> On 7/5/2013 12:24 PM, J.O. Aho wrote:
>>> On 05/07/13 14:25, Jerry Stuckle wrote:
>>>> On 7/5/2013 7:38 AM, sanjayrathod273@gmail.com wrote:
>>>>> HEy guys Help me
>>>>>
>>>>> I want to use sandbox for my site's security. below is the link of
>>>>> method which i want to use
>>>>> http://php.net/manual/en/runkit.sandbox.php.
>>>>>
>>>>> but when i am run the code of that page it says sandbox class not
>>>>> defined.
>>>>> so anyone can guide me through this step by step.
>>>>> Please help me my site has down due to hacking. i want to use for this
>>>>> site
>>>>> http://web.guru99.com/demo-editor-php/
>>>>>
>>>>
>>>> Look at the documentation - you need the runkit PECL class.  But that
>>>> has not been updated for seven years and will not compile with PHP
>>>> versions > 5.2.  It looks like you're out of luck.
>>>>
>>>> But then while I think what you're trying to do is admirable, I don't
>>>> think you'll be able to stop hacking without pretty much crippling your
>>>> users.  Anyone developing (or learning) PHP should have their own
>>>> development environment, anyway.
>>>>
>>>
>>> There are other options to "sandbox" the users, suExec will give you
>>> some capabilities and then on you can also run the apache in a chroot
>>> environment. This way you can limit the access through the webserver to
>>> the rest of the server environment and limit the sites from accessing
>>> each others data. I usually apply the suhosin to the php and set a bit
>>> limitation that way too. Doing all that you need of course a Linux/Unix
>>> server.
>>>
>>
>> Yes, but look at his site.  He's trying to create an online PHP executor
>> for people to use.  Your suggestions won't help there - it's impossible
>> to use them to limit access to the files from user-developed code
>> (evidently executed with eval()) while still making it available to the
>> installed code.
>
> *nods*
>
>> And limiting things like file functions in his php.ini file will not
>> only limit the functions for user-developed code, but for the code on
>> the site itself.
>
> yeah, you are right, but just let us play things a little bit before
> giving up.
>
> 1. If we start with running the apache in a chroot, we eliminate the
> access to system files.
>

True, but giving the Apache user very limited rights by itself would 
prevent access to system files (but not other website files, of course).

> 2. Then we run the suExec for the site and php with suhosin, to make
> things a little bit safer in the environment which will be "executing
> the code".
>

This would definitely make things a lot safer.  But you'd still have to 
have at least the PHP script being executed available.  There doesn't 
need to be a lot in that page, however, and careful programming (i.e. no 
passwords, no other file accesses, etc.) would make it safe even if the 
code was exposed.

> 3. Instead of using eval to run the user imputed code, we use fpm to
> execute it and set the fpm to use another php.ini than the suExec
> environment Running the fpm in it's own nested chroot, will prevent it
> from accessing those files in the general apache chroot.
>

Hadn't though about this.  It could easily work - i.e. create a page on 
the fly from the user's code then execute that page.  Permissions might 
be a problem, but could be worked out, I guess.

> Of course this would require a custom made PHP page to handle a such
> setup, but could in theory work, but should be well tested before
> releasing to the wide world web.
>
> Any thoughts about this, or do you see a flaw in my thought?
>

No obvious flaws, anyway.  I guess the biggest part would be he'd need 
his own server or VPS as these would require changes to the PHP 
executable which a shared host wouldn't be interested in making.

Offhand, I'd say it could work, but I'd have to think about it a lot 
more, and play with it.  But it's not interesting enough to me to spend 
a lot of time on it.

A great idea, though.

-- 
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Sandbox sanjayrathod273@gmail.com - 2013-07-05 04:38 -0700
  Re: Sandbox Jerry Stuckle <jstucklex@attglobal.net> - 2013-07-05 08:25 -0400
    Re: Sandbox "J.O. Aho" <user@example.net> - 2013-07-05 18:24 +0200
      Re: Sandbox Jerry Stuckle <jstucklex@attglobal.net> - 2013-07-05 12:53 -0400
        Re: Sandbox "J.O. Aho" <user@example.net> - 2013-07-05 19:33 +0200
          Re: Sandbox Denis McMahon <denismfmcmahon@gmail.com> - 2013-07-05 18:23 +0000
          Re: Sandbox Jerry Stuckle <jstucklex@attglobal.net> - 2013-07-05 15:07 -0400
            Re: Sandbox "J.O. Aho" <user@example.net> - 2013-07-05 21:20 +0200

csiph-web