22
PHP: Hypertext Preprocessor Roman Schröder

PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick Was ist PHP? Installation Konfiguration Sicherheit Sprachkonstrukte

Embed Size (px)

Citation preview

Page 1: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

PHP: Hypertext Preprocessor

Roman Schröder

Page 2: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 2 / 28

Überblick Was ist PHP? Installation Konfiguration Sicherheit Sprachkonstrukte PHP-Pakete

Page 3: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 3 / 28

Was ist das? Entwickler: The PHP Group Erscheinungsjahr: 1995 aktuelle Version: 5.2 (2. November 2006) serverseitige Programmiersprache plattformunabhängig Java/C++ ähnliche Syntax

Page 4: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 4 / 28

Vor- & Nachteile serverseitiger Ausführung

Vorteile Nachteile keine Imkompatibilität (Browser) kann nicht deaktiviert werden Quelltext bleibt auf Server Client hat kein Zugriff auf Ressourcen wie DB

Aktion des Benutzers erst bei Neuaufruf verwertbar Belastung des Servers steigt Sicherheitsrisiken bei unvorsichtiger Programmierung

Page 5: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 5 / 28

Funktionen breite Datenbankunterstützung Möglichkeit Funktionsbibliotheken

einzubinden (z.B. zur Erzeugung von Bildern)

Cookies Session Handling PDF Generierung

Page 6: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 6 / 28

Funktionsweise

Page 7: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 7 / 28

Installation

Page 8: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 8 / 28

Vor- und Nachteile der Varianten

CGI-PHP Modul Pro Seitenaufruf neuer Prozess Systembelastung steigt enorm Speicher wird am Ende eines Prozesses frei- gegeben Systemsicherheit DB Verbindung geht nach Prozessende verloren

Bestandteil des Servers und ständig geladen kann Datenbanklinks über Lebensdauer der Seite hinaus halten (Performancegewinn) manche PHP-Module laufen nicht

Page 9: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 9 / 28

Installation des Moduls1. ZIP Datei entpacken2. PHP Konfigurationsdatei ändern3. Apache Konfigurationsdatei ändern4. Apache neu starten

Alternative: XAMPP (enthält Apache, PHP, mySQL, phpMyAdmin)

Page 10: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 13 / 28

Installation – Unix

makemake install

Installation

1. Apache Konfiguration

2.

./configure \--prefix=/usr/local/apache \--enable-so \--enable-cgi \--enable-info \--enable-rewrite \--enable-speling \--enable-usertrack \--enable-deflate \--enable-ssl \--enable-mime-magic

./configure \--with-apxs2=/usr/local/apache/bin/apxs \--with-mysql \--prefix=/usr/local/apache/php \--with-config-file-path=/usr/local/apache/php \--enable-force-cgi-redirect \--disable-cgi \--with-zlib \--with-gettext \--with-gdbm

4.

3. PHP Konfiguration

Page 11: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 14 / 28

Konfiguration Kann über Funktion phpinfo() eingesehen

werden Änderungen können durchgeführt werden

in: php.ini httpd.conf (Apache) .htaccess (für Skripte im Verzeichnis) Funktion ini_set() (zur Laufzeit des Skripts)

Page 12: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 16 / 28

Sicherheit Keine globalen Variablen verwenden

register_globals = off! statt http://url.de?variable1=test&

variable2=irgend_ein_wertmit $_GET[‘variable‘] arbeiten

externe Variablen vor Einbindung überprüfen (HTML Tags entfernen durch strip_tags(), da evtl. XSS-Scripting Gefahr) XSS Beispiel 1 XSS Beispiel 2

Page 13: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 19 / 28

safe_mode Kann in der php.ini gesetzt werden Wenn aktiv, folgende Einschränkungen:

Dateifunktionen können nur mit lokalen Dateien ausgeführt werden, die selben Eigentümer haben wie Skript

exec() führt nur noch bestimmte Kommandos aus

dynamisch ladbare Erweiterungen sind deaktiviert

Page 14: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 20 / 28

Sprachkonstrukte<html>

<body><?php echo "Hallo Welt!"; ?> </body>

</html>

Page 15: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 21 / 28

Variablentypen Boolean Integer Float String Array Object

Page 16: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 22 / 28

Variablenüberprüfung<?php

$bool = TRUE;  // ein Boolean (Wahrheitswert)$str  = "foo";  // ein String (Zeichenkette)$int  = 12;    // ein Integer (Ganzzahl)echo gettype($bool); // gibt "boolean" ausecho gettype($str);  // gibt "string" aus// Falls es ein Integer ist, erhöhe ihn um vierif (is_int($int)) {   $int += 4;}// Falls $bool ein String ist, gebe ihn aus// (gibt überhaupt nichts aus)if (is_string($bool)) {   echo "String: $bool";}

?>

Page 17: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 23 / 28

Ausdrücke Konstanten: define("name", "peter"); Verkürzte if Anweisung:

$wenn ? $dann : $sonst Funktionen:

function verdoppeln($i) {return $i*2;

}

Page 18: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 24 / 28

Operatoren arithmetische: +, -, *, /, % Zuweisungen: =, +=, -=, .= Vergleiche: ==, !=, >, <, <=, >= Inkrement/Dekrement: ++$a, $a++,

--$b, $b-- logische: and, or, xor, !

Page 19: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 25 / 28

Kontrollstrukturen if, else, elseif while for switch, break require(_once) / include(_once)

Page 20: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 26 / 28

Erweiterungspaket GD Open Source-Programmbibliothek zur

dynamischen Erzeugung und Manipulation von Grafiken

Zeichnen von Linien, Rechtecken, Polygonen, Kreisbögen und Ellipsen

Bilder oder Ausschnitte von Bildern können aus Dateien eingelesen und manipuliert werden

Unterstützung von Alphakanälen Erzeugung animierter GIF Grafiken PHP: Erzeugung von Thumbnails

(Vorschaubildern)

Page 21: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 27 / 28

Verbreitete Applikationen wBB, vBulletin und phpBB – Foren-Software phpMyAdmin – grafische

Benutzeroberfläche zur Verwaltung von MySQL-Datenbanken

PHP-Nuke – Portal-Software Drupal, PostNuke, TYPO3, Mambo / Joomla!

– Content-Management-Systeme (CMS) WordPress – Software für das Erstellen von

Weblogs

Page 22: PHP: Hypertext Preprocessor Roman Schröder. 25.06.2015PHP2 / 28 Überblick  Was ist PHP?  Installation  Konfiguration  Sicherheit  Sprachkonstrukte

04/26/23 PHP 28 / 28

Noch fragen?Vielen Dank für die Aufmerksamkeit!