programmieren:sqlite3:allgemein
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| programmieren:sqlite3:allgemein [27/04/2020 17:28] – [GLOB und Wild-Card-Suche] conny | programmieren:sqlite3:allgemein [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ===== SQLITE 3 & PHP ===== | ===== SQLITE 3 & PHP ===== | ||
| - | {{ : | + | {{ : |
| ===== Adress Datenbank Beispiel ===== | ===== Adress Datenbank Beispiel ===== | ||
| Zeile 13: | Zeile 13: | ||
| Als schnelle, zuverlässige und relationale Datenbank ist SQLite bestens für Web-Anwendungen geeignet und optimiert für mobile Geräte.\\ | Als schnelle, zuverlässige und relationale Datenbank ist SQLite bestens für Web-Anwendungen geeignet und optimiert für mobile Geräte.\\ | ||
| + | <WRAP center round important 60%> | ||
| + | Für die Sicherheit ist es wichtig sich ein Konzept zu überlegen um SQL Injections zu vermeiden. Dafür gibt es verschiedene Ansätze welche auch teilweise in diesem Beitrag beschrieben werden. \\ | ||
| + | Man sollte sich überlegen bei Datenbankzugriffen in Zukunft auf PDO zu setzen, weil hier standardmäßig Prepared Statements unterstützt werden. Hiermit ist man wesentlich sicherer. | ||
| + | \\ | ||
| + | Seite mit PDO Script: http:// | ||
| + | </ | ||
| Zeile 138: | Zeile 144: | ||
| exec wird für INSERT, UPDATE und DELETE benutzt. | exec wird für INSERT, UPDATE und DELETE benutzt. | ||
| < | < | ||
| - | $db-> | + | $db-> |
| </ | </ | ||
| Zeile 292: | Zeile 298: | ||
| </ | </ | ||
| + | Guter Beitrag: https:// | ||
| ==== CSV Import ==== | ==== CSV Import ==== | ||
| Zeile 319: | Zeile 325: | ||
| ?> | ?> | ||
| </ | </ | ||
| - | ==== Links ==== | + | ===== SICHERHEIT ===== |
| + | SQL-Injections | ||
| + | |||
| + | Hacker kann es durch SQL Injections gelingen, Daten zu klauen, manipulieren oder zu löschen. | ||
| + | Um SQL-Injections zu verhindern empfiehlt sich der Einsatz von prepared statements . Sobald ihr irgendwelche Daten vom Benutzer an die Datenbank übergebt, sollte ihr stets auf prepared Statements zurückgreifen. | ||
| + | |||
| + | < | ||
| + | $db = new SQLite3(' | ||
| + | if($stmt = $db-> | ||
| + | { | ||
| + | | ||
| + | | ||
| + | | ||
| + | { | ||
| + | $names[$arr[' | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $smt = $db-> | ||
| + | $smt-> | ||
| + | $smt-> | ||
| + | |||
| + | $smt-> | ||
| + | </ | ||
| + | |||
| + | ==== escapeString ==== | ||
| + | Gibt eine passend maskierte Zeichenkette zurück - entfernt Sonderzeichen und erzeugt | ||
| + | < | ||
| + | $unsafe = $_GET[' | ||
| + | $safe = SQLite3:: | ||
| + | $sql = " | ||
| + | echo ($sql); | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | $url = $db-> | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== Variablen prüfen ==== | ||
| + | Variablen sollten auch geprüft werden ob sie den gewünschten Inhalt Typ haben.\\ | ||
| + | Hierfür gibt es in PHP die CTYPE Funktionen\\ | ||
| + | ==== XXX ==== | ||
| + | Wandelt alle geeigneten Zeichen in entsprechende HTML-Codes um\\ | ||
| + | https:// | ||
| + | |||
| + | |||
| + | posted sollten so behandelt werden\\ | ||
| + | < | ||
| + | $name=htmlspecialchars(strip_tags($_POST[' | ||
| + | </ | ||
| + | ===== Links ===== | ||
| \\ | \\ | ||
| * http:// | * http:// | ||
programmieren/sqlite3/allgemein.1588001332.txt.gz · Zuletzt geändert: 27/04/2020 16:28 (Externe Bearbeitung)
