SQL Injections in Webanwendungen

Größe: px
Ab Seite anzeigen:

Download "SQL Injections in Webanwendungen"

Transkript

1 SQL Injections in Webanwendungen Maximilian Geissler Betreuer: Daniel Raumer Seminar Network Hacking WS2013 Lehrstuhl Netzarchitekturen und Netzdienste Fakultät für Informatik, Technische Universität München KURZFASSUNG Die meisten Webanwendungen sind verwundbar gegenüber SQL Injections. Dieses Paper gibt einen Überblick über SQL Injections und Gegenmaßnahmen. Dazu wird die Funktionsweise von SQL Injections erläutert. Auf die im Bereich der HTTP Webanwendungen häufig anzutreffende Kombination PHP und MySQL wird besonders eingegangen. Durch die vorgestellten Prinzipien können typische Fehler bei der Entwicklung von Webanwendungen vermieden und SQL Injections verhindert werden. Schlüsselworte SQL Injection, SQLIA, SQLIV, Webanwendung 1. EINFÜHRUNG SQL Injections sind eine weit verbreitete Methode, Anwendungen anzugreifen. Die meisten Webanwendungen [1] und auch lokale Anwendungen, die auf einer SQL-Datenbank aufbauen, sind davon betroffen. Datenbanken sind ein beliebtes Angriffsziel, da darin wertvolle Inhalte, wie z.b. Kundendaten einer Firma, verwaltet werden. Es existieren sehr viele Webanwendungen, die gegenüber SQL Injections verwundbar sind [2]. Aus diesen Gründen sind SQL Injections weit verbreitet. Laut dem Application Vulnerability Trends Report 2013 [3] der Cenzic, Inc waren durchschnittlich 6% aller getesteten Anwendungen verwundbar gegenüber SQL Injections. Das OWASP Top Ten Project [4] stuft für das Jahr 2013 SQL Injections als die größte Gefahr für Webanwendungen ein [5]. Im folgenden Abschnitt 2 wird die Definition einer SQL Injection angegeben und in Abschnitt 3 werden die Ziele eines Angriffs vorgestellt. Anschließend werden in Abschnitt 4 die Angriffspunkte als Basis für die Durchführung einer SQL Injection (Abschnitt 5) aufgezeigt. In Abschnitt 6 werden Maßnahmen gegen SQL Injections vorgestellt. 2. DEFINITION EINER SQL INJECTION SQL Injection bezeichnet einen Angriff, auch SQL injection attack (SQLIA) genannt, auf datenbankbasierende Anwendungen durch spezielle Benutzereingaben. Diese Benutzereingaben werden aufgrund mangelhafter Überprüfung akzeptiert und erlauben dem Angreifer, Daten zu manipulieren oder die Anwendung anderweitig zu kompromittieren [6]. Die Vorraussetzung einer SQL Injection ist eine SQLIV (SQL injection vulnerability), also eine Sicherheitslücke oder Schwachstelle in einer Anwendung. 3. ZIELE VON SQL INJECTIONS Es gibt unterschiedliche Motivationen für einen Angreifer, eine SQL Injection durchzuführen. In dieser Arbeit werden diese folgendermaßen klassifiziert: Kopieren von Daten Das gängigste Ziel einer SQL Injection ist es, Daten, die nicht öffentlich verfügbar sind, einzusehen und zu kopieren [7]. Der Angreifer verschafft sich so wertvolle Informationen. Manipulation von Daten Durch das Hinzufügen, Veränderen oder Löschen von Daten kann ein Angreifer eine Anwendung manipulieren. Beispielsweise könnte er in einem Webshop den Preis für eine bestimmte Ware verändern. Denial of Service (DoS) Bei einem Denial of Service ist die Anwendung für Benutzer nicht mehr verfügbar. Die Motivation hinter einer DoS Attacke können wirtschaftliche Interessen oder Konkurrenzkämpfe sein. Umgehen von Authentifizierungen Angreifer können sich durch SQL Injections Zugriff auf Funktionen von Anwendungen verschaffen, die durch Authentifizierungen geschützt sind. Einschleusen von Code Wenn ein Angreifer in ein System eingedrungen ist, kann er schädlichen Code einschleusen 1, den er später ausführen kann. Oft verfolgen Angreifer nicht nur eines sondern mehrere dieser Ziele. 4. ANGRIFFSPUNKTE Die typischen Angriffspunkte bei datenbankbasierten Webanwendungen, die mittels HTTP mit dem Server kommunizieren, sind: Benutzereingaben Benutzereingaben können in Webanwendungen unter Verwendung von HTML Formularen an die Anwendung übermittelt werden. Durch den Missbrauch dieser Formulare wird eine SQL Injection möglich. Dabei wird ein spezieller Text in ein Feld des Formulares 1 Beispielsweise mit Stored Procedures [8].

2 5.1.1 Angriffspunkte finden Zunächst müssen Angriffspunkte, wie in Abschnitt 4 beschrieben, gefunden werden. Sie bilden die Basis für die weiteren Schritte Fingerprinting Verschiedene Datenbanksysteme reagieren leicht unterschiedlich auf bestimmte Eingaben. Fehlerhafte Eingaben können zu Fehlermeldungen führen, die viele Informationen verraten (siehe auch Abschnitt 5.2.2). Falls es gelingt, durch dieses Fingerprinting auf Typ und Version zu schließen, kann ein gezielter Angriff auf dieses Datenbanksystem durchgeführt werden [10]. Abbildung 1: Missbrauch von Formularen eingegeben, wie in Abbildung 1 dargestellt. Wenn die Clientsoftware auf HTML und Scriptsprachen wie Javascript aufbaut, liegt sie nicht in kompilierter Form, sondern als Quelltext vor. Somit ist sie leicht zu verändern. Einige Browser bieten die Möglichkeit, mit Hilfe von Developer Tools den HTML Code einer Webseite direkt zu verändern und somit Validierungen, die in Skriptsprachen implementiert sind, zu umgehen. Beispielsweise bietet der Browser Firefox eine solche Funktion im Menü unter Tools/Web Developer/Inspector. HTTP Header Eine weitere Möglichkeit, eine Webanwendung anzugreifen, sind HTTP Header. Wenn die Daten dieser Header in Datenbankabfragen verwendet werden, kann durch veränderte Header eine SQL Injection durchgeführt werden. Cookies Cookies sind ein wichtiger Angriffspunkt für Webanwendungen. Da sie auf Seite des Clients gespeichert sind, ist eine Manipulation möglich. Cookies werden als HTTP Header übertragen und somit gilt für sie die selbe Missbrauchsmöglichkeit wie für HTTP Header. Parameter Mithilfe der Methoden GET und POST können in Webanwendungen Parameter in Form von Key-Value- Paaren an den Server übergeben werden. Diese Parameter können auf der Clientseite beliebig gesetzt werden. Für GET wird eine angepasste URL aufgerufen und für POST wird ein modifizierter HTTP Request abgesetzt. 5. DURCHFÜHRUNG EINER SQLIA In diesem Kapitel wird vorgestellt, wie ein Angriff vorbereitet werden kann und welche Angriffsarten möglich ist. 5.1 Angriffsvorbereitung Um einen erfolgreichen und präzisen Angriff durchzuführen, ist es hilfreich, Informationen über die Anwendung und deren Datenbank zu sammeln. Im Folgenden wird ein kurzer Überblick über Techniken zum Erlangen dieser Informationen gegeben Datenbankschemata herausfinden Kenntnisse über die Datenbankschemata werden gebraucht für eine SQL Injection. Informationen wie Tabellennamen und Spaltennamen sind nötig, um Datenbankabfragen zu erstellen, die die gesuchten Daten liefern [11] Rechte erlangen Wenn bestimmte Daten im Datenbanksystem durch besonders hohe Zugriffsrechte geschützt sind, kann ein Angreifer versuchen, sich durch einen vorausgehenden Angriff höhere Benutzerrechte zu verschaffen. 5.2 Angriffsarten In diesem Abschnitt werden unterschiedliche Angriffsarten vorgestellt, die in einer SQLIA genutzt werden können. Viele der Angriffe haben gemeinsam, dass in den SQL Abfragen mithilfe von Kommentarzeichen, wie z.b. - -, Teile der Abfrage für den SQL Interpreter unsichtbar gemacht werden [12] Tautologien Bei dieser Art von Attacke wird eine SQL Abfrage mit einer WHERE Bedingung ausgenutzt. Die WHERE Bedingung wird durch geschicktes Anpassen der Eingabe zu einer Tautologie umgebaut [7]. Ein typischer Anwendungsfall ist das Umgehen von Authentifizierungen. Eine mögliche SQL Abfrage für das Formular aus Abbildung 1 ist in Listing 1 zu sehen. Dabei werden die Platzhalter $u und $p durch den Inhalt der Felder Username bzw. Password des Formulares ersetzt. Listing 1: SQL Abfrage select from u s e r s where username = $u and password = $p hi Listing 2: SQL Injection or 1=1 Wird nun statt einem Benutzernamen eine SQL Injection wie in Listing 2 angegeben, ist die WHERE Bedingung der SQL Abfrage in eine Tautologie umgebaut worden (Listing 3). Listing 3: Modifizierte SQL Abfrage select from u s e r s where username = h i or 1=1 and password = t e x t

3 Das ist möglich durch das geschickte Verwenden der Steuerzeichen - -, die den SQL Interpreter anweisen, den letzten Teil der Abfrage als Kommentar zu interpretieren und folglich zu ignorieren (In Listing 3 kursiv dargestellt). Somit liefert die resultierende SQL Abfrage alle Datensätze der Tabelle users ohne Authentifizierung Ungültige Abfragen Datenbanksysteme geben bei ungültigen SQL Abfragen Fehlermeldungen zurück, falls diese Funktion nicht deaktiviert wurde. Wenn diese Fehlermeldungen dem Benutzer in der Webanwendung angezeigt werden, können durch sie Informationen über das Datenbanksystem und die Datenbankstrukturen gesammelt werden. Diese Attacke dient vor allem der Angriffsvorbereitung, weil mit Hilfe der neu gewonnenen Informationen präzisere Angriffe möglich werden. Listing 4: SQL Abfrage select from s t u d e n t s where name = $n Listing 5: Modifizierte SQL Abfrage select from s t u d e n t s where name = Die SQL Abfrage in Listing 4 wird durch die SQL Injection -- im Platzhalter $n zu einer ungültigen SQL Abfrage (Listing 5). Diese ungültige SQL Abfrage führt beispielsweise zu folgender Fehlermeldung: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near at line 1 Wenn die Fehlermeldung in der Webanwendung angezeigt wird, ist dem Angreifer nun bekannt, dass die Webanwendung MySQL als Datenbanksystem verwendet. Damit sind ihm künftig gezielte Angriffe auf dieses Datenbanksystem möglich. Der Angreifer hat somit erfolgreich Fingerprinting (Abschnitt 5.1.2) betrieben. Auch über Datenbankstrukturen können Informationen gesammelt werden. Wenn der Name der Benutzertabelle nicht bekannt ist, kann ein Angreifer gängige Tabellennamen wie users, user, accounts usw. durchprobieren. MySQL würde z.b. Fehlermeldungen wie Table database.users doesn t exist liefern. Der Angreifer wiederholt seine Attacke mit anderen Tabellennamen solange, bis der Fehler nicht mehr auftritt. Dann ist ihm der richtige Tabellenname bekannt. Die gleiche Vorgehensweise kann auch für unbekannte Spaltennamen in Tabellen verwendet werden Union Queries Mithilfe von UNION können in SQL die Ergebnisse mehrerer Abfragen zusammengefasst werden. Auf dieser Basis werden Union Query Angriffe durchgeführt. Listing 6: SQL Abfrage select semester from s t u d e n t s where name = $n Listing 7: SQL Injection union s e l e c t accountnumber from bankaccounts where u s e r i d = 42 Der Platzhalter $n in Listing 6 wird ersetzt durch die SQL Injection in Listing 7. Das Resultat ist dargestellt in Listing 8. Listing 8: Modifizierte SQL Abfrage select semester from s t u d e n t s where name = union select accountnumber from bankaccounts where u s e r i d = 42 Unter der Annahme, dass es keinen Studenten mit leerem Namen gibt, wird die Bedingung der ersten SELECT Abfrage nie erfüllt. Folglich liefert die erste Abfrage NULL. Die zweite Abfrage liefert die Spalte accountnumber aus der Tabelle bankaccounts für den Benutzer mit der ID 42. Die ID wird zuvor in Erfahrung gebracht oder zufällig gewählt. Durch UNION wird als Ergebnis nur eine Zeile mit der Spalte accountnumber zurückgegeben. Die Webanwendung wird dem Benutzer diesen Wert unter der Annahme, es handle sich um die Spalte semester der Tabelle students, anzeigen. Auf diese Art und Weise können Daten anderer Tabellen aus der Datenbank extrahiert werden Piggy-Backed Queries Die Möglichkeit, mehrere Abfragen durch spezielle Delimeter 2 zu trennen und somit mehrere Abfragen hintereinander auszuführen, kann für eine Attacke verwendet werden. Diese Art der Attacke wird Piggy-Backed Query genannt [13]. Bei dieser Attacke wird nicht die eigentliche Abfrage (Listing 9) geändert sondern eine neue Abfrage hinzugefügt [13]. Dadurch kann beliebiger SQL Code auf der Datenbank ausgeführt werden. Listing 9: SQL Abfrage select from s t u d e n t s where name = $n Wenn der Platzhalter $n durch die SQL Injection (Listing 10) ersetzt wird, ist es möglich, die gesamten Benutzertabelle zu löschen (Listing 11). Listing 10: SQL Injection Robert ; drop t a b l e s t u d e n t s Listing 11: Piggy-Backed Query select from s t u d e n t s where name = Robert ; drop table s t u d e n t s 2 In vielen SQL Datenbanksystemen wird das Symbol ; standardmäßig als Delimeter verwendet, z.b. in MySQL.

4 5.2.5 Stored Procedures Stored Procedures sind Funktionen in Datenbanksystemen. Viele Datenbanksysteme enthalten fertige Stored Procedures oder bieten die Möglichkeit, diese zu erstellen [8, 14]. Häufig wird fälschlicherweise angenommen, dass Stored Procedures Schutz vor SQL Injections bieten, doch sie sind ebenfalls angreifbar [7]. Wei stellt in [15] Methoden vor, wie Attacken mit Hilfe von Stored Procedures funktionieren und verhindert werden können Inferences Wenn keine verwertbaren Informationen wie Fehlermeldungen der Datenbank an den Benutzer der Anwendung weitergeleitet werden, muss das Feedback auf eine andere Art und Weise eingeholt werden. Blind SQL Injection Bei dieser Technik wird auf Informationen geschlossen. Zum Beispiel war eine SQL Injection wie 100 and 1=1 auf einer ID wahrscheinlich erfolgreich, wenn die Webseite genau den selben Inhalt anzeigt wie wenn 100 übergeben wird. Eine detaillierte Beschreibung wie Blind SQL Injections funktionieren, stellt Spett in [16] vor. Timing SQL Injection Wenn absolut keine verwertbaren Informationen erlangt werden können, ist die einzige Möglichkeit eine Timing SQL Injection. Dabei wird die Zeit, die eine SQL Abfrage braucht gemessen und dazu benutzt Rückschlüsse auf den Erfolg der Injection zu ziehen. Timing SQL Injections werden in [7, 17] detailliert behandelt. 5.3 Beispiel für einen Angriff Nachfolgend wird ein Beispiel für eine SQLIA in PHP und MySQL vorgestellt. Listing 12: SQLIV in PHP 1 $username = $ GET [ username ] ; 2 $query = s e l e c t from u s e r s where username =. $username. ; 3 $ r e s u l t = mysqli query ( $con, $query ) ; In Listing 12 wird in einem (unvollständig dargestellten) PHP Skript eine SQL Abfrage an eine MySQL Datenbank gesendet. Die Abfrage wird dynamisch generiert und hängt von dem per HTTP GET übergebenen Parameter username ab. Die fehlende Eingabeüberprüfung in diesem Beispiel ist eine gravierende Schwachstelle, die für eine SQL Injection genutzt werden kann und somit eine SQLIV darstellt. Durch den Aufruf der URL dieses PHP Skripts kann die SQ- LIA durchgeführt werden (Listing 13). Dabei muss die SQL Injection in URL encoding [18] übergeben werden, damit alle Sonderzeichen korrekt an das Skript übertragen werden. Listing 13: SQL Injection durch URL http :// www. example. com / script. php? username = Robert %27%3 B %20 drop %20 table %20 users %3 B %20 - -%20 Der Angriff in Listing 13 verwendet die Angriffsart Piggy- Backed Query und basiert auf der SQL Injection aus Listing 10. Dem Angreifer ist es möglich, durch den Aufruf der URL die Tabelle users zu löschen. 6. GEGENMAßNAHMEN Im Folgenden werden drei mögliche Gegenmaßnahmen vorgestellt: Defensives Programmieren, Zugriffsbeschränkungen im DBMS und automatisierte Schwachstellenerkennung. 6.1 Defensives Programmieren Das Absichern einer Anwendung gegen SQL Injections beginnt idealerweise bereits beim Erstellen der Anwendung. Durch Defensives Programmieren werden SQLIVs bereits während der Entwicklung vermieden. Da eine zeit- und kostenaufwändige Nachbesserung der Anwendung vermieden wird, sollte Defensives Programmieren stets betrieben werden, insbesondere bei Neuentwicklungen. Eine große Hilfe für Programmierer stellt das OWASP SQL Injection Prevention Cheat Sheet [2] dar. In diesem Dokument werden Methoden und Programmierpraktiken vorgestellt, die SQL Injections effektiv verhindern können. Das Grundprinzip des Defensiven Programmierens ist All Input Is Evil! [9]. Dementsprechend sollten alle Eingaben der Anwendung, insbesondere Benutzereingaben, als potentielle Angriffspunkte gesehen werden Escaping Escaping ist eine Technik, Eingaben so zu verändern, dass SQL Steuerzeichen, wie oder ; vom SQL Interpreter ignoriert bzw. als Teil der Zeichenkette betrachtet werden. Escaping ist eine weit verbreitete Methode, um SQL Injections zu verhindern. Listing 14 zeigt, wie durch das Voranstellen des Escaping Symbols \ das Steuerzeichen als Teil der Zeichenkette Scarlett O Hara interpretiert wird und somit die Struktur der SQL Abfrage durch die Zeichenkette nicht verändert wird. Listing 14: Beispiel für Escaping select from u s e r s where name = S c a r l e t t O\ Hara Durch Programmiersprachen und Anwendungsframeworks, die Methoden für automatisches Escaping anbieten, kann dem Programmierer die Arbeit erleichtert werden. Nachfolgend wird eine Auswahl von Escaping Methoden in PHP vorgestellt. magic quotes gpc Wenn diese PHP Einstellung gesetzt ist, werden Eingaben, die dem Skript als Parameter übergeben werden (z.b. per GET), automatisch durch Escaping Funktionen behandelt. Diese Einstellung sollte aber nicht verwendet werden, da sie keinen vollständigen Schutz vor SQL Injections bietet [19]. addslashes(...) Diese Funktion wird zwar häufig für Escaping verwendet, bietet aber nicht unbedingt Schutz vor SQL Injections, da sie nicht alle Möglichkeiten von Injections abdeckt [20]. Eine bessere Alternative sind datenbankspezifische Escaping Funktionen.

5 mysql real escape string(...) Diese MySQL spezifische Funktion bietet den besten Schutz, falls MySQL verwendet wird. Dennoch gibt es Exploits [21]. Viele Escaping Techniken können durch Alternate Encodings [7] umgangen werden. Somit bietet Escaping keinen vollständigen Schutz vor SQL Injections. Daher sollten sich Anwendungen nicht nur auf Escaping verlassen, sondern weitere Schutzmaßnahmen anwenden Datentypsicherheit Durch die Überprüfung des Datentyps werden ebenfalls viele SQL Injections vermieden, weil Steuerzeichen nicht bis zum SQL Interpreter gelangen können. Listing 15: Beispiel für Datentypsicherheit 1 $ i = $ GET [ u s e r i d ] ; 2 $ i = intval ( $ i ) ; 3 $query = s e l e c t from u s e r s where id =. $ i ; 4 $ r e s u l t = mysqli query ( $con, $query ) ; In einer SQL Abfrage wie in Listing 15 wird die ID des Benutzers in der Where-Bedingung überprüft. Wenn bekannt ist, welcher Datentyp das Feld id hat (hier z.b. Integer), kann die Eingabe für den Platzhalter $i vorher in einen Integer umgewandelt werden (Zeile 2). An dieser Stelle wird nun eine SQL Injection verhindert. Diese Technik funktioniert sehr gut bei numerischen Datentypen. Aufwändiger wird es bei Datums- und Zeittypen und vor allem bei String-Typen, also Zeichenketten. Bei diesen Datentypen bietet es sich an, White List Input Validation anzuwenden White List Input Validation Bei White List Input Validation [22] werden nur bestimmte Zeichen in der Eingabe zugelassen (whitelisting). Eine Realisierung ist z.b. mit Regular Expressions möglich. Listing 16: Beispiel für White List Input Validation 1 $p = $ GET [ phone ] ; 2 i f (! preg match ( /ˆ([0 9] ) $/ i, $p ) ) 3 { 4 exit ( I n v a l i d phone number ) ; 5 } 6 $query = s e l e c t name from u s e r s where phone =. $p ; 7 $ r e s u l t = mysqli query ( $con, $query ) ; Listing 16 zeigt ein Beispiel in PHP. Die White List Input Validation in Zeile 2 erlaubt nur bestimmte Arten von Zeichenketten, hier Telefonnummern. In Telefonnummern sind in diesem Beispiel nur Ziffern und das Symbol - erlaubt. Wenn ein anderes Zeichen in der Zeichenkette vorhanden ist, wird das Programm abgebrochen Eigene Fehlerausgabe Eine wichtige Gegenmaßnahme ist, Fehlermeldungen sehr knapp zu halten bzw. nicht direkt an die Benutzer der Anwendung weiterzugeben. Das verringert das Risiko einer SQL Injection stark, weil dem Angreifer die Angriffsvorbereitung (Abschnitt 5.1), insbesondere Fingerprinting und das Herausfinden von Datenbankschemata, erschwert wird. Die Angriffsart Ungültige Abfragen (Abschnitt 5.2.2) ist dann nicht möglich, weil sie auf detaillierten Fehlermeldungen aufbaut. Deswegen ist es von Vorteil, in eine Anwendung eine Einstellung einzubauen, die definiert ob die Anwendung im Debugbzw. Entwicklungsmodus läuft. Wenn diese Einstellung aktiviert ist, werden detaillierte Fehler ausgegeben, die die Entwickler in ihrer Tätigkeit bestmöglich unterstützen. Wenn die Anwendung fertig entwickelt ist, wird diese Einstellung deaktiviert und es werden nur noch allgemeine Fehlermeldungen, wie z.b. Datenbankfehler, zurückgegeben Prepared Statements Prepared Statements, auch Parameterized Queries genannt, sind die sicherste Maßnahme gegen SQL Injections und sollten von allen Entwicklern verwendet werden [2]. Bei Prepared Statements muss der Entwickler erst die Struktur der SQL Abfrage definieren und danach die Daten, die in die Struktur eingesetzt werden. Durch die Trennung von Struktur und Daten ist keine Veränderung der Struktur durch manipulierte Daten mehr möglich und somit werden SQL Injections effektiv verhindert. Listing 17: Beispiel für Prepared Statements 1 / I n i t i a l i z e database connection / 2 $mysqli = new mysqli ( l o c a l h o s t, user, password, db ) ; 3 4 / Create Prepared Statement / 5 $stmt = $mysqli >prepare ( s e l e c t from u s e r s where name =? and pin =? ) 6 7 / Bind parameters / 8 $name = $ GET [ name ] 9 $pin = $ GET [ pin ] 10 $stmt >bind param ( s i, $name, $pin ) ; / Execute statement / 13 $stmt >execute ( ) ; In Listing 17 wird ein PHP Beispiel für eine SQL Abfrage unter Verwendung von Prepared Statements gezeigt. Dieses Minimalbeispiel soll nur das Prinzip verdeutlichen und verzichtet deswegen auf Fehlerbehandlung. In Zeile 5 wird das Prepared Statement erstellt. Hier ist darauf zu achten, dass keine Eingaben direkt in den Query-String eingebaut werden, sondern stattdessen als Platzhalter das Symbol? verwendet wird. Die Platzhalter werden in Zeile 10 beim sogenannten bind-vorgang durch Werte ersetzt. Dabei werden auch die Datentypen festgelegt: si bedeutet, dass zwei Platzhalter ersetzt werden, der erste vom Typ String (s) und der zweite vom Typ Integer (i). Durch den bind-vorgang ist also automatisch Datentypsicherheit gegeben. Bei Prepared Statements muss kein gesondertes Escaping betrieben werden, da im bind-vorgang die Struktur der SQL Abfrage nicht mehr verändert werden kann. Nach Zeile 10 kann das Prepared Statement $stmt verwendet werden, um sichere SQL Abfragen durchzuführen.

6 6.2 Zugriffsbeschränkungen im DBMS Das Datenbanksystem (auch DBMS, Datenbankmanagementsystem) muss durch Zugriffskontrollen abgesichert sein. Die Datenbankverbindung zwischen einer Anwendung und dem SQL Server kann durch die Verwendung von Benutzername und Passwort geschützt werden. Zwei verschiedene Datenbanken auf einem Server dürfen sich niemals Benutzername und Passwort teilen, weil sonst bei einem Bekanntwerden der Zugangsdaten mehrere Datenbanken auf einmal betroffen sind. Außerdem darf der Benutzer root niemals für Datenbankverbindungen in Anwendungen verwendet werden, da in der Standardeinstellung zu viele Rechte an diesen Benutzer vergeben sind. SQL Datenbanken wie MySQL erlauben sehr gezieltes Setzen von Rechten für Datenbankbenutzer [23]. Es gilt der Grundsatz: So viele Rechte wie nötig, aber so wenig wie möglich vergeben. Wird in einer Anwendung beispielsweise niemals ein DROP ausgeführt, sollten auch keine DROP Rechte an den Datenbankbenutzer, der in der Anwendung verwendet wird, vergeben sein. Es empfiehlt sich außerdem, vor allem bei großen Anwendungen, in unterschiedlichen Teilen der Anwendung verschiedene Datenbankbenutzer zu verwenden, die jeweils so wenig Rechte wie möglich haben. Wenn eine Attacke erfolgreich ist, kann der Angreifer nur in diesem Teil der Anwendung agieren und hat keinen oder nur eingeschränkten Zugriff auf andere Teile der Datenbank. 6.3 Automatisierte Schwachstellenerkennung Es gibt Tools, die automatisiert Schwachstellen in Anwendungen finden und oft auch automatisiert beheben können. Dieser Abschnitt bietet einen Überblick über dieses Thema sowie weiterführende Literatur dazu Codeanalysetools Tools in dieser Kategorie analysieren den Code der Anwendung, um Schwachstellen zu finden. Eine Möglichkeit ist beispielsweise der PSR-Generator Algorithmus (Prepared Statement Replacement Generator Algorithmus) [24], der alle dynamischen SQL Abfragen durch Prepared Statements ersetzt. In [25, 26, 24] werden Codeanalysetools näher besprochen Laufzeitanalysetools Tools dieser Art versuchen eine laufende Anwendung automatisiert mit gängigen Attacken anzugreifen. Der Code der Anwendung muss dem Tool nicht bekannt sein. Anschließend werden gefundene Sicherheitslücken angezeigt und der Entwickler kann seinen Code verbessern. Diese Tools können jedoch auch zur Angriffsvorbereitung missbraucht werden. Halfond, Viegas und Orso behandeln in [26] Laufzeitanalysetools. Es existiert eine weitere Art von Laufzeitanalysetools, die ständig zusammen mit der Anwendung auf dem Server laufen. Sie können z.b. durch Bibliotheken oder Middlewares (zwischen Anwendung und Datenbanksystem) den Verkehr zwischen Anwendung und SQL Server überwachen und versuchen Attacken zu erkennen und zu verhindern (intrusion detection) [27, 26]. Diese Systeme führen allerdings einen Overhead ein, weil sie permanent laufen müssen. 7. ZUSAMMENFASSUNG SQL Injections sind nach wie vor eine große Bedrohung für Anwendungen. Wenn aber die im Paper vorgestellten Prinzipien beachtet werden, können die meisten SQL Injections verhindert werden. Die wichtigste Gegenmaßnahme ist die Verwendung von Prepared Statements, weil nur mit dieser Technik Struktur und Daten einer SQL Abfrage getrennt werden. Dadurch werden SQL Injections nahezu unmöglich gemacht. Zusätzlich muss immer darauf geachtet werden, dass die Eingaben ausreichend überprüft werden, vor allem durch Datentypüberprüfung und White List Input Validation. Escaping sollte für alle Benutzereingaben durchgeführt werden, aber nicht als alleinige Maßnahme eingesetzt werden. Wenn die Datenbankbenutzer nur minimale Rechte haben, wird im Fall eines erfolgreichen Angriffs der Schaden begrenzt. Wenn all diese Empfehlungen umgesetzt werden, wird der Code einer Anwendung sehr viel sicherer und nahezu unverwundbar gegenüber SQL Injections. 8. LITERATUR [1] M. Shema: Seven Deadliest Web Application Attacks, Syngress, 2010 [2] SQL Injection Prevention Cheat Sheet, https://www.owasp.org/index.php/ SQL_Injection_Prevention_Cheat_Sheet [3] Cenzic Inc.: Application Vulnerability Trends Report 2013, https://info.cenzic.com/2013-application- Security-Trends-Report.html [4] Open Web Application Security Project (OWASP), https://www.owasp.org/ [5] OWASP Top , https://www.owasp.org/index.php/top_10_2013- Top_10 [6] Eckert: IT-Sicherheit, Kapitel 3.5.3, Oldenbourg Verlag, 2012 [7] William G.J. Halfond, Jeremy Viegas, Alessandro Countermeasures, IEEE International Symposium on Secure Software Engineering (ISSSE), 2006 [8] MySQL create procedure and create function Syntax, [9] Michael Howard, David LeBlanc: Writing Source Code, Second Edition, Chapter 10: All Input Is Evil!, Microsoft Press, 2004 [10] William G.J. Halfond, Jeremy Viegas, Alessandro Countermeasures, Proceedings of the IEEE International Symposium on Secure Software

7 Engineering, Kapitel 2.2, Performing database finger-printing, 2006 [11] William G.J. Halfond, Jeremy Viegas, Alessandro Countermeasures, Proceedings of the IEEE International Symposium on Secure Software Engineering, Kapitel 2.2, Determining database schema, 2006 [12] MySQL Kommentare, comments.html [13] Neha Mishra, Sunita Gond: Defenses To Protect Against SQL Injection Attacks, IJARCCE, 2013 [14] Michael Howard, David LeBlanc: Writing Source Code, Second Edition, Microsoft Press, 2004 [15] Ke Wei, Muthusrinivasan Muthuprasanna, Suraj Kothari: Preventing SQL injection attacks in stored procedures., Software Engineering Conference 2006, IEEE, 2006 [16] Kevin Spett: Blind sql injection., SPI Dynamics Inc, Firmeninternes Paper, 2003 [17] Ferruh Mavituna: Deep Blind SQL Injection., White Paper, 2008 [18] Uniform Resource Identifier (URI): Generic Syntax, [19] PHP: Why not to use Magic Quotes, security.magicquotes.whynot.php [20] PHP: addslashes, [21] Get around mysql real escape string(), [22] Input Validation Cheat Sheet, https://www.owasp.org/index.php/ Input_Validation_Cheat_Sheet [23] Kemper, Eickler: Datenbanksysteme, Kapitel 12.2, Oldenbourg Verlag, 2009 [24] Sayyed Mohammad Sadegh Sajjadi, Bahare Tajalli Pour: Defenses To Protect Against SQL Injection Attacks, IJCCE, Vol. 2 No. 5, 2013 [25] Lwin Khin Shar and Hee Beng Kuan Tan: Defeating SQL Injection, Nanyang Technological University, IEEE, 2013 [26] William G.J. Halfond, Jeremy Viegas, Alessandro Countermeasures, IEEE International Symposium on Secure Software Engineering (ISSSE), Kapitel 5.2, Detection and Prevention Techniques, 2006 [27] Frank S. Rietta: Application layer intrusion detection for SQL injection., Proceedings of the 44th annual Southeast regional conference, ACM, 2006

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen FAEL-Seminar Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus?

Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus? Schwachstellen in Web- Applikationen: Was steckt dahinter und wie nutzt man sie aus? Prof. Dr. Marc Rennhard Institut für angewandte Informationstechnologie InIT ZHAW Zürcher Hochschule für Angewandte

Mehr

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen Dr. Marc Rennhard Institut für angewandte Informationstechnologie Zürcher Hochschule Winterthur marc.rennhard@zhwin.ch Angriffspunkt

Mehr

Aktuelle Sicherheitsprobleme im Internet

Aktuelle Sicherheitsprobleme im Internet Herbst 2014 Aktuelle Sicherheitsprobleme im Internet Wirtschaftsinformatik: 5. Semester Dozenten: Rainer Telesko / Martin Hüsler Fachhochschule Nordwestschweiz FHNW / Rainer Telesko - Martin Hüsler 1 Inhalt

Mehr

SQL Injection Funktionsweise und Gegenmaßnahmen

SQL Injection Funktionsweise und Gegenmaßnahmen SQL Injection Funktionsweise und Gegenmaßnahmen EUROSEC GmbH Chiffriertechnik & Sicherheit Tel: 06173 / 60850, www.eurosec.com EUROSEC GmbH Chiffriertechnik & Sicherheit, 2005 Problematik SQL-Injection

Mehr

web(in)securities CISCO Academy Day 11/12.05.2012 Mark Hloch Montag, 14. Mai 12

web(in)securities CISCO Academy Day 11/12.05.2012 Mark Hloch Montag, 14. Mai 12 Hochschule Niederrhein University of Applied Sciences Elektrotechnik und Informatik Faculty of Electrical Engineering and Computer Science web(in)securities CISCO Academy Day 11/12.05.2012 Mark Hloch Inhalt

Mehr

Sicherheit in Webanwendungen CrossSite, Session und SQL

Sicherheit in Webanwendungen CrossSite, Session und SQL Sicherheit in Webanwendungen CrossSite, Session und SQL Angriffstechniken und Abwehrmaßnahmen Mario Klump Die Cross-Site -Familie Die Cross-Site-Arten Cross-Site-Scripting (CSS/XSS) Cross-Site-Request-Forgery

Mehr

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Sicherheit von Webapplikationen Sichere Web-Anwendungen Sicherheit von Webapplikationen Sichere Web-Anwendungen Daniel Szameitat Agenda 2 Web Technologien l HTTP(Hypertext Transfer Protocol): zustandsloses Protokoll über TCP auf Port 80 HTTPS Verschlüsselt

Mehr

Informationstechnik & System-Management SQL INJECTION. Selbstgemachte Sicherheitslücken. SQL-Injection ITSB2006 Michael Donabaum

Informationstechnik & System-Management SQL INJECTION. Selbstgemachte Sicherheitslücken. SQL-Injection ITSB2006 Michael Donabaum SQL INJECTION Selbstgemachte Sicherheitslücken Beschreibung SQL-Injection SQL-Einschleusung Ausnutzen von Sicherheitslücken in Zusammenspiel mit SQL-Datenbanken Mangelnde Maskierung von Metazeichen \ ;

Mehr

Datensicherheit. Vorlesung 7: 29.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Datensicherheit. Vorlesung 7: 29.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter Datensicherheit Vorlesung 7: 29.5.2015 Sommersemester 2015 h_da Heiko Weber, Lehrbeauftragter Inhalt 1. Einführung & Grundlagen der Datensicherheit 2. Identitäten / Authentifizierung / Passwörter 3. Kryptografie

Mehr

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink

Hacker-Methoden in der IT- Sicherheitsausbildung. Dr. Martin Mink Hacker-Methoden in der IT- Sicherheitsausbildung Dr. Martin Mink Hacker-Angriffe 3.11.2010 Hacker-Methoden in der IT-Sicherheitsausbildung Dr. Martin Mink 2 Typische Angriffe auf Web- Anwendungen SQL Injection

Mehr

14.05.2013. losgeht s

14.05.2013. losgeht s losgeht s 1 Agenda erläutern 2 Warum jetzt zuhören? 3 BSI-Quartalsbericht 4/2010 Die gefährlichsten Schwachstellen in Webauftritten Häufig wurden SQL-Injection(Weiterleitung von SQL-Befehlen an die Datenbank

Mehr

Thema: SQL-Injection (SQL-Einschleusung):

Thema: SQL-Injection (SQL-Einschleusung): Thema: SQL-Injection (SQL-Einschleusung): Allgemein: SQL (Structured Query Language) ist eine Datenbanksprache zur Definition von Datenstrukturen in Datenbanken sowie zum Bearbeiten (Einfügen, Verändern,

Mehr

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10

Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10 The OWASP Foundation http://www.owasp.org Absicherung von Web-Anwendungen in der Praxis Highlights aus den OWASP TOP 10 Tobias Glemser tobias.glemser@owasp.org tglemser@tele-consulting.com Ralf Reinhardt

Mehr

Netzwerksicherheit Übung 9 Websicherheit

Netzwerksicherheit Übung 9 Websicherheit Netzwerksicherheit Übung 9 Websicherheit David Eckhoff, Tobias Limmer, Christoph Sommer Computer Networks and Communication Systems Dept. of Computer Science, University of Erlangen-Nuremberg, Germany

Mehr

SQL-Injection in the news Stand: 17.06.2006 24:00

SQL-Injection in the news Stand: 17.06.2006 24:00 Vernetzte Unternehmen I SQL-Injection Prof. Dr. H. Strack, Dipl.-Inf.(FH) Ch. Karich SQL-Injection in the news Stand: 17.06.2006 24:00 Heise-Newsticker: 02.06.06: SQL-Injection-Lücke in MySQL gestopft

Mehr

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe... php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick...2 2.Parameterübergabe...7 3.Zugriff auf mysql Daten...11 Verteilte Systeme: php.sxw Prof.

Mehr

Verteidigung gegen SQL Injection Attacks

Verteidigung gegen SQL Injection Attacks Verteidigung gegen SQL Injection Attacks Semesterarbeit SS 2003 Daniel Lutz danlutz@watz.ch 1 Inhalt Motivation Demo-Applikation Beispiele von Attacken Massnahmen zur Verteidigung Schlussfolgerungen 2

Mehr

SQL Injektions Attacken bedrohen das Web. Wie funktionieren sie, und wie kann man sie verhindern?

SQL Injektions Attacken bedrohen das Web. Wie funktionieren sie, und wie kann man sie verhindern? SQL Injektions Attacken bedrohen das Web. Wie funktionieren sie, und wie kann man sie verhindern? Simon Kokerbeck Universität Paderborn koker@upb.de Die schnelle Entwicklung des Internets in den letzten

Mehr

Ablauf Unit2. Walkthrough

Ablauf Unit2. Walkthrough Ablauf Unit2 Vertiefendes Uebungsprojekt - SQL II Gerhard Wohlgenannt Test Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Gruppeneinteilung + Themenvergabe Vorstellung der Arbeitsumgebung

Mehr

Techniken zur Verhinderung von SQL Injection Attacken

Techniken zur Verhinderung von SQL Injection Attacken Techniken zur Verhinderung von SQL Injection Attacken Datum: 6. Dezember 2007 Michael Pröstler - 0304384 e0304384@student.tuwien.ac.at Zusammenfassung SQL Injection Attacken stellen ein großes Sicherheitsrisiko

Mehr

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite Zusammenfassung: Alle Oracle Forms Anwendungen sind per Default durch SQL Injection angreifbar. Oracle Applications >=11.5.9 ist davon nicht betroffen, da hier standardmäßig der Wert FORMSxx_RESTRICT_ENTER_QUERY

Mehr

Transaktionen in der Praxis. Dr. Karsten Tolle

Transaktionen in der Praxis. Dr. Karsten Tolle Transaktionen in der Praxis Dr. Karsten Tolle Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch (Exception e) { e.printstacktrace(); } con.setautocommit(false);

Mehr

Datenbanksysteme SS 2007

Datenbanksysteme SS 2007 Datenbanksysteme SS 2007 Frank Köster (Oliver Vornberger) Institut für Informatik Universität Osnabrück Kapitel 9c: Datenbankapplikationen Architektur einer Web-Applikation mit Servlets, JSPs und JavaBeans

Mehr

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012

Isolationsstufen für. Dr. Karsten Tolle Dienstag 31. Januar 2012 Isolationsstufen für Transaktionen / Sicherheit Dr. Karsten Tolle Dienstag 31. Januar 2012 Praxisbeispiel in Java Connection con = null; try { con = DriverManager.getConnection("jdbc:db2:sample"); } catch

Mehr

Schwachstellenanalyse 2013

Schwachstellenanalyse 2013 Schwachstellenanalyse 2013 Sicherheitslücken und Schwachstellen in Onlineshops Andre C. Faßbender Schwachstellenforschung Faßbender 09.01.2014 Inhaltsverzeichnis 1. Abstract... 3 2. Konfiguration der getesteten

Mehr

Hacking. InfoPoint 07.12.2005. Jörg Wüthrich

Hacking. InfoPoint 07.12.2005. Jörg Wüthrich Hacking InfoPoint 07.12.2005 Jörg Wüthrich Inhalte Rund um das Thema Hacking Angriffs-Techniken Session Handling Cross Site Scripting (XSS) SQL-Injection Buffer Overflow 07.12.2005 Infopoint - Hacking

Mehr

Einführung in Web-Security

Einführung in Web-Security Einführung in Web-Security Alexander»alech«Klink Gulaschprogrammiernacht 2013 Agenda Cross-Site-Scripting (XSS) Authentifizierung und Sessions Cross-Site-Request-Forgery ([XC]SRF) SQL-Injections Autorisierungsprobleme

Mehr

7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) {

7.11.2006. int ConcatBuffers(char *buf1, char *buf2, size_t len1, size_t len2) { Universität Mannheim Lehrstuhl für Praktische Informatik 1 Prof. Dr. Felix C. Freiling Dipl.-Inform. Martin Mink Dipl.-Inform. Thorsten Holz Vorlesung Angewandte IT-Sicherheit Herbstsemester 2006 Übung

Mehr

Angreifbarkeit von Webapplikationen

Angreifbarkeit von Webapplikationen Vortrag über die Risiken und möglichen Sicherheitslücken bei der Entwicklung datenbankgestützter, dynamischer Webseiten Gliederung: Einführung technische Grundlagen Strafbarkeit im Sinne des StGB populäre

Mehr

SQL-Injection by. SQL Injection Teil 2 R. Mirzaev & J. Kresslein 1

SQL-Injection by. SQL Injection Teil 2 R. Mirzaev & J. Kresslein 1 SQL-Injection by SQL Injection Teil 2 R. Mirzaev & J. Kresslein 1 Inhalt Schon bekannte Angriffsformen? User-Agent based SQL Injection + Demo Zeitbasierte SQL Injection Blind SQL Injection + Demo PostgreSQL

Mehr

Sicherheit in Software

Sicherheit in Software Sicherheit in Software Fabian Cordt und Friedrich Eder 3. Juni 2011 Allgemeines Begriffserklärung Woher Die 19 Todsünden 1 - Teil 2 - Teil 3 - Teil Was kann passieren Probleme beim Porgramm Durch Lücken

Mehr

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH www.oneconsult.com

itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 2013 OneConsult GmbH www.oneconsult.com itsc Admin-Tag OWASP Top 10 Tobias Ellenberger COO & Co-Partner OneConsult GmbH 13.03.2013 Agenda Vorstellung Open Web Application Security Project (OWASP) Die OWASP Top 10 (2013 RC1) OWASP Top 3 in der

Mehr

Die XML-Schnittstelle von FreelancerWelt.de Projektimport

Die XML-Schnittstelle von FreelancerWelt.de Projektimport Die XML-Schnittstelle von FreelancerWelt.de Projektimport Die Schnittstelle ermöglicht es neue IT Projekte auf FreelancerWelt.de automatisch einzustellen, bestehende zu aktualisieren oder zu löschen. Wenn

Mehr

Apache HTTP-Server Teil 2

Apache HTTP-Server Teil 2 Apache HTTP-Server Teil 2 Zinching Dang 04. Juli 2014 1 Benutzer-Authentifizierung Benutzer-Authentifizierung ermöglicht es, den Zugriff auf die Webseite zu schützen Authentifizierung mit Benutzer und

Mehr

Web 2.0 (In) Security PHPUG Würzburg 29.06.2006 Björn Schotte

Web 2.0 (In) Security PHPUG Würzburg 29.06.2006 Björn Schotte Web 2.0 (In) Security PHPUG Würzburg 29.06.2006 Björn Schotte Web 2.0 (In)Security - Themen Alte Freunde SQL Injections, Code Executions & Co. Cross Site Scripting Cross Site Scripting in der Praxis JavaScript

Mehr

INSTALLATION. Voraussetzungen

INSTALLATION. Voraussetzungen INSTALLATION Voraussetzungen Um Papoo zu installieren brauchen Sie natürlich eine aktuelle Papoo Version die Sie sich auf der Seite http://www.papoo.de herunterladen können. Papoo ist ein webbasiertes

Mehr

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken.

SQL. SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Vorlesungsteil SQL Grundlagen - 1 / 8 - SQL SQL = Structured Query Language, ist eine standardisierte Sprache zum Gebrauch im Zusammenhang mit Datenbanken. Auf einem Server (Rechner im Netz, der Dienste

Mehr

SZENARIO. ausgeführt Command Injection: Einschleusen (Injizieren) bösartiger Befehle zur Kompromittierung der Funktionsschicht

SZENARIO. ausgeführt Command Injection: Einschleusen (Injizieren) bösartiger Befehle zur Kompromittierung der Funktionsschicht SZENARIO Folgenden grundlegende Gefahren ist ein Webauftritt ständig ausgesetzt: SQL Injection: fremde SQL Statements werden in die Opferapplikation eingeschleust und von dieser ausgeführt Command Injection:

Mehr

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter

Konzept eines Datenbankprototypen. 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Konzept eines Datenbankprototypen 30.06.2003 Folie 1 Daniel Gander / Gerhard Schrotter Inhalt (1) Projektvorstellung & Projektzeitplan Softwarekomponenten Detailierte Beschreibung der System Bausteine

Mehr

Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II

Ablauf. Wichtige Termine. Vertiefendes Übungsprojekt - SQL II Ablauf Wichtige Termine Ablauf der Lehrveranstaltung Vorstellung des Projektthemas Projektgruppen Vorstellung der Arbeitsumgebung (Software, Locations) Walkthrough Datenbankentwurf Formulare PHP Security

Mehr

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004

Zugriff auf Firebird-Datenbanken mit PHP. Daniel de West DB-Campus-Treffen 15. Januar 2004 Zugriff auf Firebird-Datenbanken mit PHP Daniel de West DB-Campus-Treffen 15. Januar 2004 Inhalt PHP und Firebird Die wichtigsten Befehle Verbindungsaufbau Übermitteln von Abfragen Beenden von Verbindungen

Mehr

Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen

Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen Hacker-Tool Browser von der Webanwendung zu den Kronjuwelen Ralf Reinhardt 28.11.2013, 16:40 Uhr Roadshow Sicheres Internet aiti-park Werner-von-Siemens-Str. 6 86159 Augsburg 1 Hacker-Tool Browser Über

Mehr

Praktikum Anwendungssicherheit Hochschule der Medien Stuttgart. Protokoll. III: Eingri in die Programmlogik

Praktikum Anwendungssicherheit Hochschule der Medien Stuttgart. Protokoll. III: Eingri in die Programmlogik Praktikum Anwendungssicherheit Hochschule der Medien Stuttgart Protokoll III: Eingri in die Programmlogik Verfasser: Benjamin Zaiser E-Mail: bz003@hdm-stuttgart.de Studiengang: Computer Science and Media

Mehr

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity 8.3.2011

Secure Coding & Live Hacking von Webapplikationen. Conect Informunity 8.3.2011 Secure Coding & Live Hacking von Webapplikationen Conect Informunity 8.3.2011 Dr. Ulrich Bayer Security Research Sicherheitsforschung GmbH Motivation Datendiebstahl über (Web)-Applikationen passiert täglich

Mehr

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST

2. Interaktive Web Seiten. action in Formularen. Formular. Superglobale Variablen $ POST, $ GET und $ REQUEST. GET und POST 2. Interaktive Web Seiten GET und POST Die Übertragungsmethoden GET und POST sind im http Protokoll definiert: POST: gibt an, dass sich weitere Daten im Körper der übertragenen Nachricht befinden: z.b.

Mehr

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP.

Datenbank - Teil 3. Ziele: Eine Datenbank anlegen mit SQL. Daten eingeben mit SQL. Abfragen stellen mit SQL und PHP. Ziele: Eine Datenbank anlegen mit SQL Daten eingeben mit SQL Abfragen stellen mit SQL und PHP 1 Datenbankserver Entwickelt von der schwedischen Aktiengesellschaft MySQL Unter GNU General Public License

Mehr

IT-Sicherheit Angriffsziele und -methoden Teil 2

IT-Sicherheit Angriffsziele und -methoden Teil 2 Karl Martin Kern IT-Sicherheit Angriffsziele und -methoden Teil 2 http://www.xkcd.com/424/ Buffer Overflows 2 Buffer Overflows Ausnutzen unzureichender Eingabevalidierung Begrenzter Speicherbereich wird

Mehr

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER INHALTSVERZEICHNIS 1. Datenbanken 2. SQL 1.1 Sinn und Zweck 1.2 Definition 1.3 Modelle 1.4 Relationales Datenbankmodell 2.1 Definition 2.2 Befehle 3.

Mehr

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.

Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5. Abbildung der Gefährdungen der WASC und OWASP auf die Gefährdungen und Maßnahmenempfehlungen des IT-Grundschutz-Bausteins B 5.21 Die Zusammenstellung der Gefährdungen für den Baustein 5.21 bediente sich

Mehr

easylearn Webservice lsessionservice Interface für Single Sign On (SSO)

easylearn Webservice lsessionservice Interface für Single Sign On (SSO) - 1 - easylearn Webservice lsessionservice Interface für Single Sign On (SSO) SDN AG, Solution Development Network Dezember 2008 - 2 - Inhaltsverzeichnis Inhaltsverzeichnis... 2 easylearn Webservice lsessionservice...

Mehr

Welche Gefahren gehen vom Firmenauftritt im Internet aus?

Welche Gefahren gehen vom Firmenauftritt im Internet aus? Die Webseite als Eintrittspunkt Welche Gefahren gehen vom Firmenauftritt im Internet aus? Bekannt gewordene Schwachstellen & Angriffe Bekannt gewordene Schwachstellen & Angriffe Quelle: http://www.vulnerability-db.com/dev/index.php/2014/02/06/german-telekom-bug-bounty-3x-remote-vulnerabilities/

Mehr

MySQL 101 Wie man einen MySQL-Server am besten absichert

MySQL 101 Wie man einen MySQL-Server am besten absichert MySQL 101 Wie man einen MySQL-Server am besten absichert Simon Bailey simon.bailey@uibk.ac.at Version 1.1 23. Februar 2003 Change History 21. Jänner 2003: Version 1.0 23. Februar 2002: Version 1.1 Diverse

Mehr

HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH

HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH Dr. Stefan Schlott, BeOne Stuttgart GmbH ABOUT.TXT Stefan Schlott, BeOne Stuttgart GmbH Java-Entwickler, Scala-Enthusiast, Linux-Jünger Seit jeher begeistert

Mehr

Session Management und Cookies

Session Management und Cookies LMU - LFE Medieninformatik Blockvorlesung Web-Technologien Wintersemester 2005/2006 Session Management und Cookies Max Tafelmayer 1 Motivation HTTP ist ein zustandsloses Protokoll Je Seitenaufruf muss

Mehr

Aktuelle Angriffstechniken. Steffen Tröscher cirosec GmbH, Heilbronn

Aktuelle Angriffstechniken. Steffen Tröscher cirosec GmbH, Heilbronn Aktuelle Angriffstechniken Steffen Tröscher cirosec GmbH, Heilbronn Gliederung Angriffe auf Webanwendungen Theorie und Live Demonstrationen Schwachstellen Command Injection über File Inclusion Logische

Mehr

Designprinzipien sicherer Systeme

Designprinzipien sicherer Systeme Designprinzipien sicherer Systeme Defense in Depth, Least Privilege, Design for Evil, Attack Surface Reduction, Security through Diversity, Dr. Peer Wichmann IT-Sicherheitsbeauftragter WIBU-SYSTEMS AG

Mehr

Hausarbeit. Thema: Computersicherheit. Friedrich-Schiller-Universität Jena Informatik B.Sc. Wintersemester 2009 / 2010

Hausarbeit. Thema: Computersicherheit. Friedrich-Schiller-Universität Jena Informatik B.Sc. Wintersemester 2009 / 2010 1 Friedrich-Schiller-Universität Jena Informatik B.Sc. Wintersemester 2009 / 2010 Hausarbeit Thema: Computersicherheit Seminar: Datenschutz und Datenpannen Verfasser: Dmitrij Miller Abgabetermin: 5.3.2010

Mehr

Open for Business - Open to Attack? Walter Lender, Geschäftsführer, Visonys IT-Security Software GesmbH

Open for Business - Open to Attack? Walter Lender, Geschäftsführer, Visonys IT-Security Software GesmbH Open for Business - Open to Attack? Walter Lender, Geschäftsführer, Visonys IT-Security Software GesmbH 2 Open for Business - Open to Attack? 75% aller Angriffe zielen auf Webanwendungen (Gartner, ISS)

Mehr

Carsten Eilers / www.ceilers-it.de. Sicherheit von Anfang an

Carsten Eilers / www.ceilers-it.de. Sicherheit von Anfang an Carsten Eilers / www.ceilers-it.de Sicherheit von Anfang an Vorstellung Berater für IT-Sicherheit Web Security (Pentests, Beratung,...)... Autor PHP Magazin, Entwickler Magazin Blog: www.ceilers-news.de...

Mehr

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2

7. Datenbank-Zugriff. Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn. Zum Beispiel aus PHP-Skripten: Client 7-2 5 Vorlesung und Übung Dr. Peter Pfahler Institut für Informatik Universität Paderborn 7 7. Datenbank-Zugriff Zum Beispiel aus PHP-Skripten: Client 7-2 Struktur einer Datenbank 7-3 Erzeugen von Datenbanken

Mehr

DB2 Kurzeinführung (Windows)

DB2 Kurzeinführung (Windows) DB2 Kurzeinführung (Windows) Michaelsen c 25. Mai 2010 1 1 Komponenten von DB2 DB2 bietet zahlreiche graphische Oberflächen für die Verwaltung der verschiedenen Komponenten und Anwendungen. Die wichtigsten

Mehr

Passwortschutz: Sicherheitsaspekte. www.informatikzentrale.de

Passwortschutz: Sicherheitsaspekte. www.informatikzentrale.de Passwortschutz: Sicherheitsaspekte Ihr Feind: Der "Hacker" Hacker hat im technischen Bereich mehrere Bedeutungen. Das Wort wird alltagssprachlich gebraucht, um jemand zu bezeichnen, der über ein Netzwerk

Mehr

SQL structured query language

SQL structured query language Umfangreiche Datenmengen werden üblicherweise in relationalen Datenbank-Systemen (RDBMS) gespeichert Logische Struktur der Datenbank wird mittels Entity/Realtionship-Diagrammen dargestellt structured query

Mehr

Grundkurs MySQL und PHP

Grundkurs MySQL und PHP Martin Pollakowski Grundkurs MySQL und PHP So entwickeln Sie Datenbanken mit Open-Source-Software vieweg Inhaltsverzeichnis Anwendung und Nutzen von Datenbanken 1 1.1 Was ist eine Datenbank? 1 1.2 Abgrenzung

Mehr

Dateneingabe über ein HTML-Formular in eine Datenbank:

Dateneingabe über ein HTML-Formular in eine Datenbank: Dateneingabe über ein HTML-Formular in eine Datenbank: Über ein Eingabeformular mit fünf Eingabefelder sollen Personaldaten in eine Datenbank gespeichert werden: Schritt 1: Erstellen des Eingabeformulars

Mehr

Web Hacking - Angriffe und Abwehr

Web Hacking - Angriffe und Abwehr Web Hacking - Angriffe und Abwehr UNIX-Stammtisch 31. Januar 2012 Frank Richter Holger Trapp Technische Universität Chemnitz Universitätsrechenzentrum Motivation (1): Für uns Lehrveranstaltung: Techniken

Mehr

SQL-INJECTIONS. N E T D E V E L O P E R S G R O U P B E R L I N B R A N D E N B U R G, 0 5. 0 4. 2 0 1 2

SQL-INJECTIONS. N E T D E V E L O P E R S G R O U P B E R L I N B R A N D E N B U R G, 0 5. 0 4. 2 0 1 2 SQL-INJECTIONS. N E T D E V E L O P E R S G R O U P B E R L I N B R A N D E N B U R G, 0 5. 0 4. 2 0 1 2 Wie sind die nur wieder an meine Kreditkartendaten gekommen? http://www.testedich.de/quiz29/picture/pic_1312394875_7.jpg

Mehr

Internetanbindung von Datenbanken

Internetanbindung von Datenbanken Internetanbindung von Datenbanken http://galahad.informatik.fh-kl.de/~miesel/index.html PHP -1 Gliederung Einführung PHP3 Datenbankanbindung mit PHP3 Sicherheitsprobleme Realisierung mit PHP3 Probleme

Mehr

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr.

TimeMachine. Installation und Konfiguration. Version 1.4. Stand 21.11.2013. Dokument: install.odt. Berger EDV Service Tulbeckstr. Installation und Konfiguration Version 1.4 Stand 21.11.2013 TimeMachine Dokument: install.odt Berger EDV Service Tulbeckstr. 33 80339 München Fon +49 89 13945642 Mail rb@bergertime.de Versionsangaben Autor

Mehr

Datensicherheit. Vorlesung 5: 15.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Datensicherheit. Vorlesung 5: 15.5.2015. Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter Datensicherheit Vorlesung 5: 15.5.2015 Sommersemester 2015 h_da, Lehrbeauftragter Inhalt 1. Einführung & Grundlagen der Datensicherheit 2. Identitäten / Authentifizierung / Passwörter 3. Kryptografie 4.

Mehr

Audit von Authentifizierungsverfahren

Audit von Authentifizierungsverfahren Audit von Authentifizierungsverfahren Walter Sprenger, Compass Security AG Compass Security AG Glärnischstrasse 7 Postfach 1628 CH-8640 Rapperswil Tel +41 55-214 41 60 Fax +41 55-214 41 61 team@csnc.ch

Mehr

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2) 14. URIs Uniform Resource Identifier 14-1 14. URIs Uniform Resource Identifier 14-2 Motivation Das WWW ist ein Hypermedia System. Es enthält: Resourcen (Multimedia Dokumente) Verweise (Links) zwischen

Mehr

V10 I, Teil 2: Web Application Security

V10 I, Teil 2: Web Application Security IT-Risk-Management V10 I, Teil : Web Application Security Tim Wambach, Universität Koblenz-Landau Koblenz, 9.7.015 Agenda Einleitung HTTP OWASP Security Testing Beispiele für WebApp-Verwundbarkeiten Command

Mehr

Secure Webcoding for Beginners

Secure Webcoding for Beginners Secure Webcoding for Beginners $awareness++ Florian Brunner Florian Preinstorfer 09.06.2010 Hacking Night 2010 Vorstellung Florian Brunner Software Engineer CTF-Team h4ck!nb3rg Student sib08 Florian Preinstorfer

Mehr

HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH

HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH HACK THAT WEBSITE! WEB SECURITY IM SELBSTVERSUCH Dr. Stefan Schlott, BeOne Stuttgart GmbH ABOUT.TXT Stefan Schlott, BeOne Stuttgart GmbH Java-Entwickler, Scala-Enthusiast, Linux-Jünger Seit jeher begeistert

Mehr

RÖK Typo3 Dokumentation

RÖK Typo3 Dokumentation 2012 RÖK Typo3 Dokumentation Redakteur Sparten Eine Hilfe für den Einstieg in Typo3. Innpuls Werbeagentur GmbH 01.01.2012 2 RÖK Typo3 Dokumentation Inhalt 1) Was ist Typo3... 3 2) Typo3 aufrufen und Anmelden...

Mehr

PHP mit Dreamweaver MX bearbeiten 00

PHP mit Dreamweaver MX bearbeiten 00 teil03.fm Seite 360 Donnerstag, 5. Februar 2004 6:27 18 PHP mit Dreamweaver MX bearbeiten 00 Mit Dreamweaver MX 2004 und PHP effektiv arbeiten PHP kann ausschließlich grafisch im Layoutmodus programmiert

Mehr

Money for Nothing... and Bits4free

Money for Nothing... and Bits4free Money for Nothing... and Bits4free 8.8.2011 Gilbert Wondracek, gilbert@iseclab.org Hacker & Co Begriff hat je nach Kontext andere Bedeutung, Ursprung: 50er Jahre, MIT Ausnutzen von Funktionalität die vom

Mehr

Programmieren 2 (Prof. Hasbargen) Klausur

Programmieren 2 (Prof. Hasbargen) Klausur Programmieren 2 (Prof. Hasbargen) 1 Klausur Aufgabe 1 (10 Punkte) Dynamisierung von HTML-Seiten HTML-Seiten sind eine gängige Art und Weise, Informationen darzustellen. Nennen Sie die Gründe, welche Vorteile

Mehr

Advanced Web Hacking. Matthias Luft Security Research mluft@ernw.de

Advanced Web Hacking. Matthias Luft Security Research mluft@ernw.de Advanced Web Hacking Matthias Luft Security Research mluft@ernw.de ERNW GmbH. Breslauer Str. 28. D-69124 Heidelberg. www.ernw.de 6/23/2010 1 ERNW GmbH Sicherheitsdienstleister im Beratungs- und Prüfungsumfeld

Mehr

PHP Kurs Online Kurs Analysten Programmierer Web PHP

PHP Kurs Online Kurs Analysten Programmierer Web PHP PHP Kurs Online Kurs Analysten Programmierer Web PHP Akademie Domani info@akademiedomani.de Allgemeines Programm des Kurses PHP Modul 1 - Einführung und Installation PHP-Umgebung Erste Lerneinheit Introduzione

Mehr

Installation SuperWebMailer

Installation SuperWebMailer Installation SuperWebMailer Die Installation von SuperWebMailer ist einfach gestaltet. Es müssen zuerst per FTP alle Dateien auf die eigene Webpräsenz/Server übertragen werden, danach ist das Script install.php

Mehr

Übung 1: Ein Website News-System mit MySQL

Übung 1: Ein Website News-System mit MySQL Übung 1: Ein Website News-System mit MySQL In der Vorübung haben wir bereits mit Hilfe eines ERMs den Datenbankentwurf erstellt und daraus die folgenden Tabellen abgeleitet: Nun muss diese Datenbank in

Mehr

eadmin Manual Universitätsstraße 3 56070 Koblenz Deutschland

eadmin Manual Universitätsstraße 3 56070 Koblenz Deutschland DOKUMENT: TYP: ERSTELLT VON: Manual nova ratio AG Universitätsstraße 3 56070 Koblenz Deutschland VERSION: STAND: 9.x 23. September 2015 Inhaltsverzeichnis 1 2 2.1 2.2 2.3 3 3.1 3.2 3.3 4 4.1 4.2 4.3 4.4

Mehr

HACK YOUR OWN WEBSITE! WEB SECURITY IM SELBSTVERSUCH. Stefan Schlott @_skyr

HACK YOUR OWN WEBSITE! WEB SECURITY IM SELBSTVERSUCH. Stefan Schlott @_skyr HACK YOUR OWN WEBSITE! WEB SECURITY IM SELBSTVERSUCH Stefan Schlott @_skyr DIE OWASP TOP-10 Alpha und Omega der Security-Talks :-) TOP 10 VON 2013 1. Injection 2. Broken Authentication/Session Management

Mehr

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL )

SQL-DDL und SQL-Anfragen. CREATE TABLE Kategorie (Bezeichnung VARCHAR(15) NOT NULL PRIMARY KEY, Klassifikationskriterium VARCHAR(100) NOT NULL ) Technische Universität München WS 2003/04, Fakultät für Informatik Datenbanksysteme I Prof. R. Bayer, Ph.D. Lösungsblatt 6 Dipl.-Inform. Michael Bauer Dr. Gabi Höfling 1.12.2003 SQL-DDL und SQL-Anfragen

Mehr

Virtual Forge CodeProfiler for HANA

Virtual Forge CodeProfiler for HANA W H I T E P A P E R Virtual Forge CodeProfiler for HANA Version 1.0 - Gültig ab 30.07.2015 Dokument 2015, Virtual Forge GmbH Inhaltsangabe Inhaltsangabe... 2 Management Summary... 3 Herausforderungen...

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

BS1000 messenger to web server

BS1000 messenger to web server BS1000 Messenger Web Server 1/5 Juni 15, 2010 BS1000 messenger to web server Einführung Die BS1000 LAN Basisstation für das Arexx-Multilogger System stellt einen Messenger-Dienst zur Verfügung, womit man

Mehr

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar

SQL für Trolle. mag.e. Dienstag, 10.2.2009. Qt-Seminar Qt-Seminar Dienstag, 10.2.2009 SQL ist......die Abkürzung für Structured Query Language (früher sequel für Structured English Query Language )...ein ISO und ANSI Standard (aktuell SQL:2008)...eine Befehls-

Mehr

Hackerpraktikum SS 202

Hackerpraktikum SS 202 Hackerpraktikum SS 202 Philipp Schwarte, Lars Fischer Universität Siegen April 17, 2012 Philipp Schwarte, Lars Fischer 1/18 Organisation wöchentliche Übung mit Vorlesungsanteil alle zwei Wochen neue Aufgaben

Mehr

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer Kommunikation I (Internet) Übung 4 PHP SS 2004 Inhaltsverzeichnis 1. PHP die serverseitige Programmiersprache...1 1.1. PHP - Bereiche in HTML definieren...1

Mehr

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1

2D22 Prinzipien der Softwareentwicklung. Prinzipien der Softwareentwicklung S. Strahringer 1 2D22 1 Inhalte der Lehrveranstaltung Einführung in die Programmierung mit PHP Literatur: Theis, Thomas (2010): Einstieg in PHP 5.3 und MySQL 5.4. [für Programmieranfänger geeignet]. 6., aktualisierte Aufl.

Mehr

verstehen lernen, wie der Angreifer denkt diese Methoden selbst anwenden Allerdings: Mitdenken, nicht nur blindes ausprobieren Außerdem:

verstehen lernen, wie der Angreifer denkt diese Methoden selbst anwenden Allerdings: Mitdenken, nicht nur blindes ausprobieren Außerdem: !! "!!##$ %& es gibt keine 100 %ige Sicherheit Fehler zu machen ist menschlich man muss es so gut wie möglich machen es ist GROB FAHRLÄSSIG es nicht einmal zu versuchen Ziel: Methoden entwickeln, die Sicherheit

Mehr

Relationale Datenbanken in der Praxis

Relationale Datenbanken in der Praxis Seite 1 Relationale Datenbanken in der Praxis Inhaltsverzeichnis 1 Datenbank-Design...2 1.1 Entwurf...2 1.2 Beschreibung der Realität...2 1.3 Enitiy-Relationship-Modell (ERM)...3 1.4 Schlüssel...4 1.5

Mehr

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten

Einführung in SQL. Sprachumfang: Indizes. Datensätzen. Zugriffsrechten Einführung in SQL Die Sprache SQL (Structured Query Language) ist eine Programmiersprache für relationale Datenbanksysteme, die auf dem ANSI-SQL-Standard beruht. SQL wird heute von fast jedem Datenbanksystem

Mehr

SQL, MySQL und FileMaker

SQL, MySQL und FileMaker SQL, MySQL und FileMaker Eine kurze Einführung in SQL Vorstellung von MySQL & phpmyadmin Datenimport von MySQL in FileMaker Autor: Hans Peter Schläpfer Was ist SQL? «Structured Query Language» Sprache

Mehr