Benutzer-Werkzeuge

Webseiten-Werkzeuge


programmieren:sqlite3:allgemein

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

programmieren:sqlite3:allgemein [27/04/2020 17:28] – [GLOB und Wild-Card-Suche] connyprogrammieren:sqlite3:allgemein [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1
Zeile 1: Zeile 1:
 ===== SQLITE 3 & PHP ===== ===== SQLITE 3 & PHP =====
  
-{{ :programmieren:sqlite3:sqlite370.svg.png?600 |}}+{{ :programmieren:sqlite3:sqlite370.svg.png?400 |}}
  
 ===== 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://www.nof-tutorials.com/Datenbank-SQLite/tutorial.html\\
 +</WRAP>
  
  
Zeile 138: Zeile 144:
 exec wird für INSERT, UPDATE und DELETE benutzt. exec wird für INSERT, UPDATE und DELETE benutzt.
 <code> <code>
-$db->exec("UPDATE <Tabelle> SET name=$_name, strasse=$_strasse, plz=$_plz, ort=$_ort WHERE ID = 6");+$db->exec("UPDATE <Tabelle> SET name='$_name', strasse='$_strasse', plz='$_plz', ort='$_ortWHERE ID = 6");
 </code> </code>
  
Zeile 292: Zeile 298:
 </code> </code>
  
 +Guter Beitrag: https://wiki.selfhtml.org/wiki/PHP/Tutorials/Reloadsperre
 ==== CSV Import ==== ==== CSV Import ====
  
Zeile 319: Zeile 325:
 ?> ?>
 </code> </code>
-==== 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. 
 + 
 +<code> 
 +$db = new SQLite3('school.db'); 
 +if($stmt = $db->prepare('SELECT id,student_name FROM classTen ')) 
 +
 +         $result = $stmt->execute(); 
 +         $names=array(); 
 +         while($arr=$result->fetchArray(SQLITE3_ASSOC)) 
 +         { 
 +          $names[$arr['id']]=$arr['student_name']; 
 +         } 
 +
 +</code> 
 + 
 +<code> 
 +$smt = $db->prepare("insert into names (name, email) values (':name', ':email')"); 
 +$smt->bindValue(':name', $_POST['post_name'], SQLITE3_TEXT); 
 +$smt->bindValue(':email', $_POST['post_email'], SQLITE3_TEXT); 
 + 
 +$smt->execute(); 
 +</code> 
 + 
 +==== escapeString ==== 
 +Gibt eine passend maskierte Zeichenkette zurück - entfernt Sonderzeichen und erzeugt  eine Zeichenkette welche ohne Bedenken in einer SQL-Anfrage benutzt werden kann.  
 +<code> 
 +$unsafe = $_GET['nastyvar']; 
 +$safe = SQLite3::escapeString($unsafe); 
 +$sql = "INSERT INTO table (field) VALUES ($safe);"; 
 +echo ($sql); 
 +</code> 
 + 
 +<code> 
 + $url = $db->escapeString($url); 
 +</code> 
 + 
 + 
 +==== 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://www.php.net/manual/de/function.htmlentities.php 
 + 
 + 
 +posted sollten so behandelt werden\\ 
 +<code> 
 +        $name=htmlspecialchars(strip_tags($_POST['name'])); 
 +</code> 
 +===== Links =====
 \\ \\
   * http://www.w3big.com/de/sqlite/default.html   * http://www.w3big.com/de/sqlite/default.html
programmieren/sqlite3/allgemein.1588001332.txt.gz · Zuletzt geändert: 27/04/2020 16:28 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki