Deaktivierte PHP Funktionen

Locked
Engholm
Posts: 151
Joined: Fri 1. Feb 2019, 11:06

Deaktivierte PHP Funktionen

Post by Engholm »

Moin zusammen,

ich nutze für einen ganzen Haufen Joomla Websites den externen Dienst mySites.guru. Nach der Umstellung einiger Seiten von PHP 7.4.x auf PHP 8.0.x funktionierte das ganze nicht mehr - auch nicht, wenn das dazugehörige Plugin noch einmal neu installiert wird. Der mySites Entwickler schiebt das nun auf die diversen standbardmäßig deaktivierten PHP Funktionen (siehe unten). Allerdings sind diese PHP-Einstellungen ja global dür den gesamten Benutzer und nicht je PHP-Version.

Da ich im PHP-Thema nicht soooo tief drin bin, Frage nun an die Community: Kann man die ganzen "disabled" PHP Funktionen bedenklos aktivieren oder lockert man sich da irgendweilche Einfallstore, auf die man besonders Acht geben muss?

Hier die Antwort im Wortlaut:
The problem is that your PHP is crippled by the huge number of PHP functions you have disabled.

Its no more secure to disable php functions in this way! You have followed bad advice from the internet that is no longer relevant in 2021.

Remove all these disabled functions from your php configuration and then complex applications like Joomla and mySites.guru will then work.
und auf diese standardmäßigen Funktionen bezieht er sich:
disable_functions dl, disk_free_space, diskfreespace, stream_socket_sendto, proc_get_status, proc_nice, proc_open, proc_terminate, proc_close, popen, curl_multi_exec, pcntl_exec, pcntl_fork, pcntl_setpriority, symlink, link, posix_kill, posix_mkfifo, posix_setsid, posix_setuid, posix_setpgid, posix_getpwuid, show_source, highlight_file, syslog, error_log, openlog, define_syslog_variables, apache_child_terminate, apache_setenv, apache_note, exec, system, shell_exec, passthru
Viele Grüße
Björn
tab-kh
Posts: 458
Joined: Thu 22. Apr 2021, 23:06

Re: Deaktivierte PHP Funktionen

Post by tab-kh »

Also ob man die Funktionen alle bedenkenlos aktivieren kann, die Frage würde ich mit "Nein" beantworten. Da kommt es auf viele Dinge an, z.B. ob es mehrere/viele Benutzer auf dem Server gibt, die man gegeneinander absichern muss. Welche Rechte man dem Benutzer zugestehen will (soll er Prozesse starten, beenden und steuern dürfen, soll er Informationen über die Ressourcen des Servers auslesen dürfen usw? ) und wie würden die Funktionen benutzt? Wer überwacht und prüft das bei Updates? Wer zahlt im Schadensfall, du oder mysites.guru? Bei einem Hostingserver mit Kunden wird die Antwort sicher anders ausfallen als bei einem komplett selbstgenutzten Server.

Abgesehen davon sehe ich erst einmal nicht, warum es an deaktivierten Funktionen scheitern soll, die ja in der älteren PHP-Version auch schon deaktiviert waren. Jedenfalls nicht, falls das Plugin nicht ebenfalls auf eine neuere Version gehoben wurde, welche dann eine oder mehrere der deaktivierten Funktionen benutzt. Ohne weitere Informationen würde ich aber erst einmal eher darauf tippen, dass das Plugin von mysites.guru nicht oder nicht richtig mit PHP 8 funktioniert. Eventuell mal in das PHP Error-Log reinschauen ob da was Erhellendes drinsteht. Und auch mal die nicht funktionierende Seite wieder auf PHP 7.4 zurückstellen und schauen, ob sie damit funktioniert. Oder, wenn du ganz mutig bist, die deaktivierten Funktionen temporär alle erlauben und mal kurz schauen, ob es denn dann überhaupt wirklich funktioniert. Noch besser, soll der Guru doch mal ganz konkret sagen, welche der deaktivierten Funktionen er verwendet, dann kann man die gezielt freigeben nach eingehender Prüfung oder Übernahme der Haftung durch mysites.guru ;).
User avatar
Alexander
Keyweb AG
Posts: 3842
Joined: Wed 20. Jan 2016, 02:23

Re: Deaktivierte PHP Funktionen

Post by Alexander »

ich nutze für einen ganzen Haufen Joomla Websites den externen Dienst mySites.guru. Nach der Umstellung einiger Seiten von PHP 7.4.x auf PHP 8.0.x funktionierte das ganze nicht mehr - auch nicht, wenn das dazugehörige Plugin noch einmal neu installiert wird. Der mySites Entwickler schiebt das nun auf die diversen standbardmäßig deaktivierten PHP Funktionen (siehe unten)
Es sollte in einem Log aufgeführt sein, welche Funktion hier zur Fehlfunktion führt. Was sagt der error-log der Domain. Wenn sich dort etwas findet, dann kannst du punktuell diese Funktion frei geben.

Allerdings sind diese PHP-Einstellungen ja global dür den gesamten Benutzer und nicht je PHP-Version.
Vielleicht verwendet er Code ala "Wenn PHP-Version > 8.0 dann verwende funktion abc() und wenn < 8.0 dann verwende xyz()". Damit wäre der Unterschied erklärt. Denn ja, die gesperrten Funktionen gelten global für alle PHP-Interpreter.

Da ich im PHP-Thema nicht soooo tief drin bin, Frage nun an die Community: Kann man die ganzen "disabled" PHP Funktionen bedenklos aktivieren oder lockert man sich da irgendweilche Einfallstore, auf die man besonders Acht geben muss?
Kommt auch immer ein bisschen drauf an, ob du alleine auf dem Server bist, oder ob du einen Shared Server für deine Kunden betreibst.

Für ersteres kannst du gern alles aus der Liste entfernen, aber nur wenn du der eingesetzten Software 100% vertraust! Aber wie häufig hinterfragt man den Code eines Plugins das man z.B. für seine eigene Wordpress-Instanz nutzt? Sicherlich nur in den wenigsten Fällen.
Stichwort, log4j, keiner hinterfragte den Code der Bibliothek, alle nutzten ihn und hinterher war das Geschrei groß.

In einem Shared-Umfeld bist du dann völlig dem Urteilsvermögen der Kunden ausgeliefert, welche Software betrieben wird. Hier möchte man den Kunden als verantwortungsbewusster Admin sicher nicht die völlige Freiheit in die Hand geben.
Its no more secure to disable php functions in this way! You have followed bad advice from the internet that is no longer relevant in 2021.
Remove all these disabled functions from your php configuration and then complex applications like Joomla and mySites.guru will then work.
Diese Aussage finde ich in diese Art (mindestens für ein Shared-Umfeld) doch recht abenteuerlich ;). Was er wohl meint, was vor ein paar Jahren noch anders war als jetzt würde mich mal interessieren.

Sicherlich muss nicht jede Funktion dort in der Liste stehen. Aber zum Beispiel solche Sachen hier: "curl_multi_exec" - Ruckzuck versendet ein gekapertes Plugin dann mehrere 1000 Requests pro Sekunde.
Mit freundlichen Grüßen / Best regards
Alexander Mahr

**************************************************************
Keyweb AG - Die Hosting Marke
Neuwerkstr. 45/46, 99084 Erfurt / Germany
http://www.keyweb.de - http://www.keyhelp.de
**************************************************************
User avatar
OlliTheDarkness
Posts: 1854
Joined: Tue 14. Aug 2018, 16:41
Location: Essen (NRW)

Re: Deaktivierte PHP Funktionen

Post by OlliTheDarkness »

tab-kh wrote: Tue 21. Dec 2021, 15:07 Also ob man die Funktionen alle bedenkenlos aktivieren kann, die Frage würde ich mit "Nein" beantworten. Da kommt es auf viele Dinge an, z.B. ob es mehrere/viele Benutzer auf dem Server gibt, die man gegeneinander absichern muss. Welche Rechte man dem Benutzer zugestehen will (soll er Prozesse starten, beenden und steuern dürfen, soll er Informationen über die Ressourcen des Servers auslesen dürfen usw? ) und wie würden die Funktionen benutzt? Wer überwacht und prüft das bei Updates? Wer zahlt im Schadensfall, du oder mysites.guru? Bei einem Hostingserver mit Kunden wird die Antwort sicher anders ausfallen als bei einem komplett selbstgenutzten Server.

Abgesehen davon sehe ich erst einmal nicht, warum es an deaktivierten Funktionen scheitern soll, die ja in der älteren PHP-Version auch schon deaktiviert waren. Jedenfalls nicht, falls das Plugin nicht ebenfalls auf eine neuere Version gehoben wurde, welche dann eine oder mehrere der deaktivierten Funktionen benutzt. Ohne weitere Informationen würde ich aber erst einmal eher darauf tippen, dass das Plugin von mysites.guru nicht oder nicht richtig mit PHP 8 funktioniert. Eventuell mal in das PHP Error-Log reinschauen ob da was Erhellendes drinsteht. Und auch mal die nicht funktionierende Seite wieder auf PHP 7.4 zurückstellen und schauen, ob sie damit funktioniert. Oder, wenn du ganz mutig bist, die deaktivierten Funktionen temporär alle erlauben und mal kurz schauen, ob es denn dann überhaupt wirklich funktioniert. Noch besser, soll der Guru doch mal ganz konkret sagen, welche der deaktivierten Funktionen er verwendet, dann kann man die gezielt freigeben nach eingehender Prüfung oder Übernahme der Haftung durch mysites.guru ;).
Seh ich genau so, mir würde im traum nicht einfallen, ecec und co im Kundenbereich frei zu geben.

Kann ich auch gleich nen Strick kaufen gehen und mich erhängen.
Mit freundlichen Grüßen
OlliTheDarkness

**************************************************************
Helden leben lange, Legenden sterben nie

:!: World Hack Organization :!:
**************************************************************
Engholm
Posts: 151
Joined: Fri 1. Feb 2019, 11:06

Re: Deaktivierte PHP Funktionen

Post by Engholm »

Danke für eure Antworten!

Da sich auf den beiden Maschinen, die davon betroffen sind, jeweils mehrere Kunden tummeln, und die ein oder anderen dort auch selbst Dinge installieren, möchte ich natürlich nicht alles per default freigeben.

Mittlerweile habe ich herausgefunden, das die deaktivierte "disk_free_space" Funktion verantwortlich ist. Damit ist das für mich erst einmal gelöst.
Alexander wrote: Tue 21. Dec 2021, 15:13
Its no more secure to disable php functions in this way! You have followed bad advice from the internet that is no longer relevant in 2021.
Remove all these disabled functions from your php configuration and then complex applications like Joomla and mySites.guru will then work.
Diese Aussage finde ich in diese Art (mindestens für ein Shared-Umfeld) doch recht abenteuerlich ;). Was er wohl meint, was vor ein paar Jahren noch anders war als jetzt würde mich mal interessieren.
Ja, mich auch, aber ich werde da nicht weiter nachhaken. Der Typ ist technisch sehr versiert, arbeitet am Joomla Core mit und hat auch schon die ein oder andere Sicherheitslücke aufgedeckt und gefixt. Allerdings hat er eine sehr unangenehme Art und Weise zu antworten, lässt einen wissen, wie dumm und inkomptent man ist. Ich hab tatsächlich bis zur Veröffentlichung von PHP 8.0.14 abgewartet, da ich mir sonst erst den Rant hätte anhören müssen, was mir überhaupt einfällt, veraltete PHP-Versionen zu nutzen. Neben seiner technischen Kompetenz ist er in der Joomla-Community eben auch für diese neurotische Ader bekannt ;)
tab-kh
Posts: 458
Joined: Thu 22. Apr 2021, 23:06

Re: Deaktivierte PHP Funktionen

Post by tab-kh »

Er wirbt ja auch damit, dass seine Software überall, bei jedem Hoster funktioniert. Schon ziemlich krass. Ist das alles überhaupt mit der DSGVO vereinbar? Nicht, dass ich da jetzt ein großer Fan von wäre, da ist doch vieles eher gut gemeint als gut gemacht. Aber es ist für mich jedenfalls nur schwer vorstellbar.
Locked