[BlueOnyx:26150] Re: BlueOnyx Webserver Performance a.k.a. the impact of "open_basedir"

Dirk Estenfeld dirk.estenfeld at blackpoint.de
Tue Apr 25 08:08:37 -05 2023


Hello,

I have only been following this discussion on the sidelines.
But today I had an experience with Shopware and I am definitely for a switch open_basedir = off in the GUI.
We had the problem with a Shopware instance with really many plugins (mod ruid2) that the page took ~ 2000ms to start rendering and that the CPUs had a lot to do all the time.
Switching off Shopware plug-ins did help a bit. But we were able to undo all that after I added in the site<nr>.include:

php_admin_value open_basedir none

The wait time immediately went down from ~ 2000 ms to ~ 500 ms.
So Shopware apparently responds extremely poorly (under certain circumstances) to open_basedir.

Best regards
Dirk

 
blackpoint GmbH – Friedberger Straße 106b – 61118 Bad Vilbel 

 
-----Ursprüngliche Nachricht-----
Von: Blueonyx <blueonyx-bounces at mail.blueonyx.it> Im Auftrag von Tobias Gablunsky
Gesendet: Mittwoch, 5. April 2023 13:38
An: BlueOnyx General Mailing List <blueonyx at mail.blueonyx.it>
Betreff: [BlueOnyx:26074] Re: BlueOnyx Webserver Performance a.k.a. the impact of "open_basedir"

Hi Michael,

thanks again for further diving into it.

I think there are no big differences in our testing setups, but yes we are using the fpm php implementation.

When it comes to the security impacts of disabling open_basedir on a Wordpress installation I totally agree with you. But in our case we have to find a way to speed up the website. And the bottleneck in our case for sure was the deactivated "realpath cache" which lead to many, many more file accesses.

So I would really like to have both: security and performance. That's why we will try to compile the mentioned PHP extension (https://github.com/Whissi/realpath_turbo), so that it works with your current php versions. 
Of course we have to disable any php functions that are able to create symlinks as well - as mentioned on the extensions page. As far as I can see this already is the case: shell_exec and escapeshellcmd are disabled by default (link and symlink are disabled by the extension itself).
And there is another needed restriction mentioned: no enabled shell access for users. But we can assure this on our systems as well. 

I know this extension didn't get changed in the last 3 years. But: the code itself is quite short - so maybe there haven't been issues since the porting to php 8. At least Remi Collet, a maintainer of an own well known php repository has included this extension. We have enabled this repo on some other systems of ours already.

So I really think the risk is acceptable in our case.

Kind regards,
Tobias

-----Ursprüngliche Nachricht-----
> Von: Michael Stauber <mstauber at blueonyx.it>
> Gesendet: Montag 3. April 2023 18:10
> An: blueonyx at mail.blueonyx.it
> Betreff: [BlueOnyx:26063] Re: BlueOnyx Webserver Performance a.k.a. 
> the impact of "open_basedir"
> 
> Hi Tobias,
> 
> > thanks for looking into it. I was really suprised by your perfomance 
> > measures. But I found there is a difference in commenting out the 
> > open_basedir option and disabling it by setting it to the value "Off".
> > When disabling the php process gets the server wide setting, which 
> > isn't
> 
> > off.
> 
> You're right. I just tested it with a <? phpinfo(); ?> page in the 
> Vsite where I had commented out open_basedir. It was then indeed using 
> the server wide defaults.
> 
> > Please repeat your test with "php_admin_value[open_basedir] = Off". 
> > I am
> 
> > sure you will see the difference.
> 
> Done. Same setup as before.
> 
> A "naked" standard template Wordpress Vsite with open_basedir disabled 
> loads around 25-30 milliseconds faster. The one with open_basedir 
> takes 1.3s to load, the one without needs around 1.00-1.05s to load.
> 
> It's still not *that* much of a difference, especially considering 
> that the standard Wordpress template need around 0.340-0.355 seconds 
> to just load its SourceSerif4Variable-Roman.ttf.woff2 font.
> 
> > The website I just tested (a real
> > world wordpress with lots of content and plugins installed) just 
> > took 5
> 
> > seconds before and less than 1 second after the change..
> That is interesting and it sure is a difference. It made me curious 
> enough to use a real life example as well: www.blueonyx.it
> 
> It's not using Wordpress, but a CMS system that is equally (but not
> quite) as bloated as Wordpress. I switched the PHP implementation to 
> suPHP to have an easier time to fiddle with the php.ini
> 
> First test:
> 
> Made sure with phpinfo() that it was set to our Vsite defaults.
> 
> Load times? Varied between 3.10-5.81. The worst I got was 8.01s.
> 
> Second test:
> 
> open_basedir = off
> 
> Made sure with phpinfo() that it was reporting "no value"
> 
> Load times? Also all over the place. The worst I got was 10.87 
> seconds, followed by a 10.02 seconds, but usually between 2.61 seconds 
> and 3.67 seconds. Best I ever got was 2.42 seconds.
> 
> Like said: This was with suPHP and we usually use DSO+mod_ruid2 for 
> that Vsite. Couldn't try PHP-FPM, as that would have impaired a 
> certain functionality of the site.
> 
> So does open_basedir have a discernible impact? I'm leaning towards 
> yes and I agree that the severity of the impact has something to do 
> with the code quality and complexity and that also implies that 
> Wordpress sure may be affected stronger than most other applications. 
> Especially with respect to its modularity, which requires more include 
> calls the more modules are active.
> 
> Would I be comfortable turning open_basedir off on a Wordpress site? 
> My personal answer to that would be a definite and emphatic "HELL 
> NO!!!", just because what a piece of often exploited hot garbage Wordpress is.
> Its incredibly large market share makes sure that it gets a lot of 
> attention and every tiny fault or code error in Wordpress or its many 
> popular modules are quickly identified and exploited by a plethora of 
> different attackers. Turing open_basedir off on a Wordpress site is 
> just making it much easier for an attacker to reap more benefits from his hack.
> 
> On the other hand: I understand that we may need to allow people to 
> make their own informed decisions and that there may be scenarios 
> (good backups, server just used for a single client/purpose) where the 
> speed increase and the associated greater risk are an acceptable risk.
> 
> And allowing "open_basedir" to be set to "off" via the GUI on a per 
> Vsite basis isn't too complicated of a change in the existing code.
> 
> So I'll be looking at that in the coming days and will let you know 
> once it's possible to do it.
> 
> --
> With best regards
> 
> Michael Stauber
> _______________________________________________
> Blueonyx mailing list
> Blueonyx at mail.blueonyx.it
> http://mail.blueonyx.it/mailman/listinfo/blueonyx
> 

_______________________________________________
Blueonyx mailing list
Blueonyx at mail.blueonyx.it
http://mail.blueonyx.it/mailman/listinfo/blueonyx
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4940 bytes
Desc: not available
URL: <http://mail.blueonyx.it/pipermail/blueonyx/attachments/20230425/83a9065a/attachment.p7s>


More information about the Blueonyx mailing list