mparticle Include und https [Gelöst]

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
apicalart
Beiträge: 161
Registriert: Fr 18. Mär 2005, 13:09
Wohnort: Linnich ( NRW )
Kontaktdaten:

mparticle Include und https [Gelöst]

Beitrag von apicalart » Mi 19. Sep 2018, 16:55

Hallo zusammen,

ich habe nach der Umstellung auf https folgende Probleme

1.
Gebe ich in einem Browser " eurecert.eu" ein, dann kommt https://www.eurecert.eu/cms/front_content.php. Die Seite wird angezeigt.
Gebe ich www.eurecert.eu ein, dann kommt die Seite sofort ohne cms/front_content.php.

2.
Außerdem verwende ich das Modul mp_article_include von xmurrix. Das funktioniert leider nicht. Sprich, die Inhalte, in meinem Fall z.B. das Menü werden nicht eingebunden.

In der error.log findet sich folgender Eintrag:

[19-Sep-2018 18:10:21 Europe/Berlin] PHP Warning: is_executable(): open_basedir restriction in effect. File(/usr/local/bin/curl) is not within the allowed path(s): (/home/jwtqcwly/htdocs4:/home/jwtqcwly/.fpp/eurecert.eu/tmp:/home/jwtqcwly/.fpp/eurecert.eu/upload:/home/jwtqcwly/.fpp/eurecert.eu/session:/home/jwtqcwly/.fpp/eurecert.eu/webredirect:/home/jwtqcwly/phpinclude:/usr/share/php:/dev/urandom:/home/logdateien/stats) in /home/jwtqcwly/htdocs4/cms/data/modules/mparticle_include/vendor/Snoopy.class.php on line 202





AMR Plugin aktiv.
config.php Datei auf https geändert
Änderungen in der htaccess vorgenommen

Code: Alles auswählen


<IfModule mod_rewrite.c>

    # Enable rewrite engine
    RewriteEngine on

    # Specify a base URL-path for the rules
    RewriteBase /cms
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    # Catch some common exploits in query string to get rid of them.
    # NOTE: Conditions to prevent protocols (ftp, http[s]) in query string could
    #       be a disadvantage in some cases.
    RewriteCond %{QUERY_STRING} contenido_path=.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} cfg\[path\]=.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} _PHPLIB\[libdir\]=.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} ftp://.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} http[s]*://.*$ [NC]
    RewriteRule ^.* - [F,L]  # all matching conditions from above will end in nirvana
    
    RewriteCond %{SERVER_PORT} !^443$
    RewriteCond %{HTTP_HOST} ^www\.eurecert\.eu$
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    RewriteCond %{HTTP_HOST} ^eurecert.eu$ [NC]
    RewriteRule ^(.+)$ https://www.eurecert.eu/$1 [R=301,L]

    # Exclude some files and directories from rewriting
    RewriteRule ^usage/.*$ - [L]
    RewriteRule ^contenido/.*$ - [L]
    RewriteRule ^setup/.*$ - [L]
    RewriteRule ^cms/upload/.*$ - [L]
    RewriteRule ^cms/upload/film/.*$ - [L]
    RewriteRule ^cms/test/.*$ - [L]
    RewriteRule ^cms/front_content.php.*$ - [L]
    RewriteRule ^cms/dbfs.php.*$ - [L]

    # Exclude common extensions from rewriting and pass remaining requests to
    # front_content.php.
    RewriteRule !\.(avi|css|doc|flv|gif|gzip|ico|jpeg|jpg|js|mov|mp3|pdf|png|ppt|rar|svg|swf|txt|wav|wmv|xml|zip)$ front_content.php [NC,QSA,L]

</IfModule>



CONTENIDO Version 4.9.12
Webserver-Version Apache/2.4.10
Installierte PHP-Version 5.6.37-0+deb8u1
Datenbankserver-Version 5.6.30-1~bpo8+1
Zuletzt geändert von apicalart am Mi 19. Sep 2018, 22:15, insgesamt 1-mal geändert.
Dat gijjt et doch nit wirklich, odder !

Grüsse aus dem Rheinland
http://www.eukoba.de

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: mparticle Include und https

Beitrag von xmurrix » Mi 19. Sep 2018, 22:02

Hallo apicalart,

schön, dass du wieder mal im Forum bist.

meine Vermutung zu deinem 1. Problem sind die Rewrite-Regeln. Du hast da Rewrite-Regeln an verschiedenen Stellen, vermutlich verursachen die das von dir beschriebene Verhalten bei Eingabe von eurecert.eu.
Versuche doch folgende Variante der .htaccess zu verwenden, in der die Regeln ziemlich am Anfang sind:

Code: Alles auswählen

<IfModule mod_rewrite.c>

    # Enable rewrite engine
    RewriteEngine on

    # Redirect host without www and regular http requests to htts with www prefix
    RewriteCond %{HTTP_HOST} ^eurecert.eu [NC,OR]
    RewriteCond %{SERVER_PORT} 80 
    RewriteRule ^(.*)$ https://www.eurecert.eu/$1 [R=301,NC,L]

    # Specify a base URL-path for the rules
    RewriteBase /cms

    # Catch some common exploits in query string to get rid of them.
    # NOTE: Conditions to prevent protocols (ftp, http[s]) in query string could
    #       be a disadvantage in some cases.
    RewriteCond %{QUERY_STRING} contenido_path=.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} cfg\[path\]=.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} _PHPLIB\[libdir\]=.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    RewriteCond %{QUERY_STRING} ftp://.*$  [NC,OR]
    RewriteCond %{QUERY_STRING} http[s]*://.*$ [NC]
    RewriteRule ^.* - [F,L]  # all matching conditions from above will end in nirvana    

    # Exclude some files and directories from rewriting
    RewriteRule ^usage/.*$ - [L]
    RewriteRule ^contenido/.*$ - [L]
    RewriteRule ^setup/.*$ - [L]
    RewriteRule ^cms/upload/.*$ - [L]
    RewriteRule ^cms/upload/film/.*$ - [L]
    RewriteRule ^cms/test/.*$ - [L]
    RewriteRule ^cms/front_content.php.*$ - [L]
    RewriteRule ^cms/dbfs.php.*$ - [L]

    # Exclude common extensions from rewriting and pass remaining requests to
    # front_content.php.
    RewriteRule !\.(avi|css|doc|flv|gif|gzip|ico|jpeg|jpg|js|mov|mp3|pdf|png|ppt|rar|svg|swf|txt|wav|wmv|xml|zip)$ front_content.php [NC,QSA,L]

</IfModule>
Das sollte dafür sorgen, dass sowohl Anfragen ohne www und als auch ohne SSL immer auf https://www.eurecert.eu/ umgeleitet werden.

Zum Problem mit "mp_article_include":
Das Modul verwendet die Snoopy-Klasse, die wiederum verwendet bei https-Requests cURL und versucht das cURL unter "/usr/local/bin/curl" auszuführen. Entweder fügst du den Pfad "/usr/local/bin/curl" in der php.ini in die erlaubten Verzeichnisse, also der Konfiguration open_basedir, oder du verwendest in der Modulklasse (mp_article_include/php/includes/class.module.mparticleinclude.php) anstatt Snoopy (Zeile 297 - 299), eine andere Lösung, z. B. file_get_contents wie folgt:

Code: Alles auswählen

$this->_code = file_get_contents($url);
Das Absenden von Requests mit der Funktion file_get_contents kann auch nicht erlaubt sein, auch kann file_get_contents nicht mit Redirects umgehen.
Als Alternative kannst du auch anstatt Snoopy den modernen PHP HTTP client Guzzle verwenden, den sollte man so konfigurieren können, dass es auch ohne cURL arbeitet.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

apicalart
Beiträge: 161
Registriert: Fr 18. Mär 2005, 13:09
Wohnort: Linnich ( NRW )
Kontaktdaten:

Re: mparticle Include und https

Beitrag von apicalart » Mi 19. Sep 2018, 22:14

Was soll ich sagen.
Ich weiß, warum ich bis heute contenido die Treue halte.
Wegen Menschen wie Murat.
Problem da,
Präzise Frage gestellt,
Schnelle Hilfe erhalten.
Läuft.

Danke mein Bester.
Viele Grüße aus dem Rheinland nach Augsburg.
Dat gijjt et doch nit wirklich, odder !

Grüsse aus dem Rheinland
http://www.eukoba.de

Antworten