Support Suche
Support Kategorien

Eigene Scripts

Support: Technik

PHP Servervariablen

Folgende Servervariabeln ($_SERVER[]) werden von NetZone unterstützt:

  • DOCUMENT_ROOT
  • HTTP_HOST
  • HTTP_USER_AGENT
  • PATH_INFO
  • PHP_AUTH_USER
  • PHP_AUTH_PW
  • PHP_SELF
  • QUERY_STRING
  • REMOTE_ADDR (ausser secure)
  • REQUEST_URI
  • SCRIPT_FILENAME
  • SCRIPT_NAME
  • SCRIPT_URL
  • SCRIPT_URI
  • SERVER_ADMIN
  • SERVER_NAME

Andere Variabeln sind zwar teilweise verfügbar, können bei späteren Updates aber eventuell entfallen. Wir garantieren nur die Verfügbarkeit obenstehender Variablen. Statt der Environment-Variablen ($_ENV[]) müssen immer die Servervariablen ($_SERVER[]) genutzt werden.


PHP und MySQL

Mit Hilfe von PHP und z.B. MySQL realisieren Sie z.B. dynamische Webseiten mit Datenbankunterstützung. Selbstverständlich sind damit noch nicht alle Möglichkeiten dieser Sprache ausgereizt.

Um in Ihren PHP Scripts eine MySQL Datenbank einzubinden benötigen Sie die MySQL Funktionen. Die Dokumentation finden Sie unter http://www.php.net/manual/de/ref.mysql.php

MySQL-Datenbanken können Sie selber mit NetConfig einrichten. Sie finden diese Funktion unter [Praesenzinformationen] und dann [MySQL]. Die angelegte Datenbank können Sie mit MySQLAdmin per Webbrowser verwalten.


Deaktivierte Funktionen

PHP bietet eine Vielzahl an Funktionen welche im normalen Betrieb nicht benötigt werden, jedoch potentielle Sicherheitsrisiken darstellen. Wir haben eine Anzahl dieser Funktionen standardmässig deaktiviert. Sie können jede deaktivierte Funktion aber jederzeit im NetConfig unter WWW-Domains -> PHP wieder aktivieren.

Wenn Sie folgende Fehlermeldung auf einer Seite erhalten, ist dies aufgrund einer deaktivierten Funktion:

Warning: function ''Funktionsname()'' has been disabled for security reason

Aktivieren Sie die unter ‘Funktionsname’ genannte Funktion im NetConfig, um den Fehler zu beseitigen.


PHP Execution Error

Dieser Fehler tritt auf, wenn Ihre Datei ein Sicherheitsrisiko darstellt. Stellen Sie sicher, dass die Datei nicht von jedermann veränderbar ist (CHMOD 600 ist für PHP Files ideal).


Dateizugriff auf externe Quellen

Probleme mit fopen

Der Befehl fopen und artverwandte bieten die Möglichkeit, auf einfache Art und Weise eine Datei zu öffnen um aus dieser zu lesen oder zu schreiben. Mit fopen ist es ausserdem möglich, eine URL direkt anzugeben, um den Inhalt dieser Website auszulesen. Dies ist jedoch ein grosses Sicherheitsrisiko, da bei unsicher programmierten Scripten die Möglichkeit besteht, PHP Code aus einer fremden Quelle auf unseren Servern auszuführen. Dies ermöglicht es dann von Ihrer Homepage aus und somit in Ihrem Namen Spam zu versenden oder gar schwere Attacken gegen andere Rechner, Banken usw durchzuführen.

Um unsere Kunden zu schützen, haben wir wie auch zahlreiche andere sicherheitsbewussten Provider fopen und verwandte Befehle eingeschränkt, sodass nur noch lokale Dateien geöffnet werden können. Wenn Sie jedoch trotzdem eine Fremdseite auslesen möchten, müssen Sie dies über die alternative fsockopen tun oder über von NetZone zur Verfügung gestellte Ersatzbefehle.

Reaktivierung von allow_url_fopen

Sollte es unumgänglich sein, auf externe Datenquellen zuzugreifen, können wir url_fopen für Sie reaktivieren. Beachten Sie aber unbedingt folgende Punkte:

  • Halten Sie all Ihre Scripte immer auf dem neusten Stand – Sicherheitslücken in Verbindung mit url_fopen können Angreifern uneingeschränkten Zugriff gewähren.
  • Wir Ihre Homepage von Angreifern übernommen, behalten wir uns vor, diese ohne Benachrichtigung sofort zu sperren.
Wir empfehlen dringend, eine der folgenden Möglichkeiten als Alternativen zur reaktivierung in Betracht zu ziehen. Wenn Sie mit den obenstehenden Einschränkungen einverstanden sind, geben Sie uns bitte Bescheid, mit Angabe Ihres Domainnamens, damit wir url_fopen reaktivieren können.

fsockopen als alternative

Wenn Sie eine externe Seite auslesen wollen, muss dies über den Befehl fsockopen geschehen. Mit fsockopen wird jedoch kein Filepointer wie bei fopen erzeugt, sondern eine direkte Verbindung zum Fremdserver hergestellt. Sie müssen diesem per HTTP Befehlen mitteilen, welche Seite abgerufen werden soll.

NetZone Funktion

Wir haben für Sie eine Funktion geschrieben, welche es einfacher machen sollte, bestehende Scripte anzupassen. Fügen Sie am Anfang der Datei (innerhalb der PHP Tags)

include_once('/home/httpd/php/fopen_http.php');

Danach können Sie jeden fopen oder file Befehl, der auf eine HTTP Adresse zugreift, durch den Befehl fopen_http bzw. file_http ersetzen.

Reaktivierung von fopen auf Anfrage

Unter Umständen lässt sich die Verwendung von url_fopen nicht umgehen, beispielsweise bei Webapplikationen die Sie nicht selbst entwickelt haben, wie z.B. Weblication. Aus Sicherheitsgründen benötigen Sie PHP5 ist als Standardinterpreter für alle PHP Files, keine Dateiendung darf mehr von PHP4 interpretiert werden. Da PHP4 keinen Unterschied zwischen url_include und url_fopen kennt, und url_include ein äusserst gefährliches Sicherheitsrisiko darstellt kann PHP4 nicht länger verwendet werden.

Wenn Sie die Einstellungen entgegen dieser Richtlinien verändern, wird url_fopen kommentarlos wieder deaktiviert.

Sind Sie mit diesen Einschränkungen einverstanden, senden Sie uns eine Mail. Vergessen Sie nicht, den betroffenen Domainnamen zu erwähnen.


Optimierer und Decoder

Wir bieten Ihnen mehrere Optimizer/Decoder an, welche jedoch nicht alle zusammen verwendet werden können. Grundsätzlich empfiehlt es sich, APC (ohne stat) zu verwenden. ZendOptimizer ist inkompatibel zu APC und sollte nur genutzt werden, wenn ZendEncoded Files bestehen. Der IonCube Loader kann immer verwendet werden, sollte jedoch nur aktiviert werden, wenn Sie diesen benötigen, um unnötigen Overhead und dadurch langsamere Scriptausführung zu vermeiden.

ZendOpimizer

Der ZendOptimizer hat einen trügerischen Namen, es wird nämlich keinerlei Optimierung vorgenommen, diese Erweiterung dient nur zum Dekodieren von ZendEncoded Files. Dies wird meist nur benötigt, wenn Sie PHP-Software einkaufen, welche vom Entwickler durch die Kodierung verschlüsselt wurde. Wichtig: Die Geschwindigkeit der Ausführung von PHP Files kann abnehmen, wenn ZendOptimizer aktiviert ist, aufgrund der zusätzlichen Arbeit die PHP durchzuführen hat.

APC

APC ist ein echter Optimierer und kann die Ausführung von PHP Scripts stark beschleunigen. Dies geschieht, indem alle PHP Files, bei der ersten Ausführung zwischengespeichert werden und für spätere Verwendung nicht mehr komplett gelesen werden müssen. APC profitiert jedoch am meisten, wenn dieser gar nicht mehr prüfen muss, ob die Originaldatei geändert wurde sondern direkt die gecachte Version nutzen kann. Darum gibt es zwei Varianten für APC: mit stat und ohne stat. Bei der Aktivierung von APC ohne stat können enorme Geschwindigkeitvorteile entstehen. Wenn Sie PHP Files aktualisieren, müssen Sie jedoch einige Minuten warten, bis die neue Version zum Zuge kommt. Bei APC mit stat ist der Geschwindigkeitsvorteil geringer, dafür werden geänderte Dateien sofort erkannt. APC mit stat ist somit nur sinnvoll, während Sie Ihre Seite aktualisieren oder anpassen und wird darum jeden Sonntag automatisch auf APC ohne stat umgestellt.

ionCube Loader

Der ionCube Loader kann zum einen generell im NetConfig unter PHP aktiviert werden und gilt dann für alle Ihre PHP Files. Dies ist jedoch nur sinnvoll, wenn die meisten Ihrer Dateien mit IonCube kodiert wurden. Alternativ kann der Loader auch mit dem dl() Befehl eingeladen werden, sofern benötigt. Aktivieren Sie hierfür die dl() funktion im NetConfig unter PHP Einstellungen, da diese standardmässig aus Sicherheitsgründen deaktiviert ist. Anschliessend können Sie den Loader jederzeit mittels der folgenden Zeilen aktiviert werden:

if(!extension_loaded('ionCube Loader')){
    @dl('ioncube_loader_lin_' . substr(phpversion(),0,3) . '.so');
}
if(function_exists('_il_exec')){
    return _il_exec();
}else{
    echo "ionCube Loader konnte nicht geladen werden";
}