From 9f9625ff58bb471e7c5089d989f915110ec26fc3 Mon Sep 17 00:00:00 2001 From: Schuledaniel Date: Wed, 4 Feb 2026 14:41:18 +0100 Subject: [PATCH] add test sql injection, add protectin agains it (lvl. 1) --- Zweites Jahr/Kryptologie/vigenere.php | 4 +-- Zweites Jahr/unterrichts_projekt/pdo_test.php | 29 +++++++++++++------ .../unterrichts_projekt/sql-injection.md | 9 ++++++ 3 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 Zweites Jahr/unterrichts_projekt/sql-injection.md diff --git a/Zweites Jahr/Kryptologie/vigenere.php b/Zweites Jahr/Kryptologie/vigenere.php index c9bf844..f9ec214 100644 --- a/Zweites Jahr/Kryptologie/vigenere.php +++ b/Zweites Jahr/Kryptologie/vigenere.php @@ -2,11 +2,11 @@ -function vigenere($text,$shift){ +function vigenere($text,$code){ $result = ""; for ($i = 0; $i < strlen($text); $i++){ - $shift = $shift[$i%strlen($shift)]; + $shift = $code[$i%strlen($code)-1]; $letter = $text[$i]; $letter = ord($letter); diff --git a/Zweites Jahr/unterrichts_projekt/pdo_test.php b/Zweites Jahr/unterrichts_projekt/pdo_test.php index 8585e7c..6ad80f2 100644 --- a/Zweites Jahr/unterrichts_projekt/pdo_test.php +++ b/Zweites Jahr/unterrichts_projekt/pdo_test.php @@ -16,18 +16,22 @@ $dbh = db_connect(); // get data from fields: - $u_firstname = $_REQUEST['firstname']; - $u_lastname = $_REQUEST['lastname']; - $u_email = $_REQUEST['email']; + $u_firstname = $dbh->quote($_REQUEST['firstname']); + $u_lastname = $dbh->quote($_REQUEST['lastname']); + $u_email = $dbh->quote($_REQUEST['email']); // definiert den SQL befehl um // einen Nutzer korrekt in der DB anzulegen - $addUser="INSERT INTO user VALUES( - NULL, - '$u_firstname', - '$u_lastname', - '$u_email' - )"; + $addUser="INSERT INTO user VALUES ( + NULL, + $u_firstname, + $u_lastname, + $u_email + );"; + + echo $addUser."
"; + + // TEST SQL INJECTION: '); DELETE FROM user WHERE (u_email LIKE '% // Versucht code auszufügen (try{...}) wenn das fehlschlägt // nimmt er sich den error und es wird anderer code ausgeführt @@ -48,11 +52,18 @@ //echo "
Error Message: $errMsg"; //echo "
Error-Code: $errCode"; + $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + echo "

FEHLER:

"; + echo "
" . $e->getCode() . ": " . $e->getMessage() . "
"; + echo "

DEINE SQL:

" . $addUser . "
"; + switch ($errCode) { case "23000": $custErrMsg = "

Email-Adress already exists

"; break; default: $custErrMsg = "

Oooooops, something went wrong!

"; } } + echo $custErrMsg; // #################################### diff --git a/Zweites Jahr/unterrichts_projekt/sql-injection.md b/Zweites Jahr/unterrichts_projekt/sql-injection.md new file mode 100644 index 0000000..eefe881 --- /dev/null +++ b/Zweites Jahr/unterrichts_projekt/sql-injection.md @@ -0,0 +1,9 @@ +## Test SQL Injection + +```sql +INSERT INTO user VALUES( + NULL, + '$u_firstname', + '$u_lastname', + ''); DELETE FROM user WHERE (u_email LIKE '%'); +``` \ No newline at end of file