From b7c52d867f5487889d633a1586112a76391cdb8b Mon Sep 17 00:00:00 2001
From: Henoch Einbier <axcessor@hotmail.com>
Date: Sat, 26 Oct 2019 00:06:35 +0300
Subject: [PATCH] Update einzahlen.php -secured PDO queries with bindParam

---
 content/konto/einzahlen.php | 34 +++++++++++++++++++++++++---------
 1 file changed, 25 insertions(+), 9 deletions(-)

diff --git a/content/konto/einzahlen.php b/content/konto/einzahlen.php
index da34b7a..8d771f6 100644
--- a/content/konto/einzahlen.php
+++ b/content/konto/einzahlen.php
@@ -9,25 +9,34 @@ if(!isset($einzahlmeldung))         $einzahlmeldung = "";
 
 $tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
 
-$schnittstellen_res = sql::$db->query("SELECT t1.*, t2.* FROM "._VMS_."_multi_konten t2
+$schnittstellen_res = sql::$db->prepare("SELECT t1.*, t2.* FROM "._VMS_."_multi_konten t2
                                 LEFT JOIN "._VMS_."_schnittstelle t1 ON t1.schnittstelle=t2.waehrung
-                                WHERE t2.uid=".$_SESSION['uid']." AND (t1.aktiv = 1 OR t1.aktiv = 3)");
+                                WHERE t2.uid=:session_uid AND (t1.aktiv = 1 OR t1.aktiv = 3)");
+$schnittstellen_res -> bindParam(':session_uid', $_SESSION['uid'], PDO::PARAM_INT);
+$schnittstellen_res -> execute();
 
 while($_temp = $schnittstellen_res->fetch() ){
     $schnittstellen[] = $_temp;
     $erlaubte_schnittstellen[] = $_temp['schnittstelle'];
 }
 
-$sql = sql::$db->query("SELECT `kontostand` FROM "._VMS_."_kontodaten WHERE uid=".$_SESSION['uid']." LIMIT 1");
+$sql = sql::$db->prepare("SELECT `kontostand` FROM "._VMS_."_kontodaten WHERE uid=:session_uid LIMIT 1");
+$sql -> bindParam(':session_uid', $_SESSION['uid'], PDO::PARAM_INT);
+$sql -> execute();
 $kontodaten = $sql->fetch();
 
 if(isset($_POST['waehrung']) && $_POST['einzahlen'] == 'Einzahlen' && $_POST['uid_passwort'] && $_POST['trans_menge'] && in_array($_POST['waehrung'], $erlaubte_schnittstellen)){
-    $schnittstelle_f = sql::$db->query("SELECT * FROM "._VMS_."_schnittstelle WHERE (aktiv = 1 OR aktiv= 3) AND schnittstelle='".$_POST['waehrung']."' LIMIT 1");
+    $schnittstelle_f = sql::$db->prepare("SELECT * FROM "._VMS_."_schnittstelle WHERE (aktiv = 1 OR aktiv= 3) AND schnittstelle=:waehrung LIMIT 1");
+    $schnittstelle_f -> bindParam(':waehrung', $_POST['waehrung'], PDO::PARAM_STR);
+    $schnittstelle_f -> execute();
     if($schnittstelle_f->rowCount() == 1){
         $schnittstelle = $schnittstelle_f->fetch();;
 
         if($schnittstelle['anfragen_user'] != 0){
-            $sql = sql::$db->query("SELECT * FROM "._VMS_."_schnittstelle_anfragen WHERE uid='".$_SESSION['uid']."' AND zeit='".$tag."'");
+            $sql = sql::$db->prepare("SELECT * FROM "._VMS_."_schnittstelle_anfragen WHERE uid=:session_uid AND zeit=:tag");
+            $sql -> bindParam(':session_uid', $_SESSION['uid'], PDO::PARAM_INT);
+            $sql -> bindParam(':tag', $tag, PDO::PARAM_INT);
+            $sql -> execute();
             $s_verbrauch = $sql->rowCount();
         }else $s_verbrauch = 0;
 
@@ -36,8 +45,10 @@ if(isset($_POST['waehrung']) && $_POST['einzahlen'] == 'Einzahlen' && $_POST['ui
         $einzahlgrenze = $sql->fetch();
         if(filter_var($_POST['trans_menge'],FILTER_VALIDATE_FLOAT) and $_POST['trans_menge'] >= $schnittstelle['einzahlsumme'] and ($kontodaten['kontostand'] + ($_POST['trans_menge'] / $schnittstelle['wertepunkt'])) <= $einzahlgrenze['einzahlgrenze']){
             if($schnittstelle['anfragen_user'] == 0 or $s_verbrauch < $schnittstelle['anfragen_user']){
-                $sql = sql::$db->prepare("SELECT kontoid FROM vms_multi_konten WHERE uid=? AND waehrung=? LIMIT 1");
-                $sql->execute(array($_SESSION['uid'], $_POST['waehrung']));
+                $sql = sql::$db->prepare("SELECT kontoid FROM vms_multi_konten WHERE uid=:session_uid AND waehrung=:waehrung LIMIT 1");
+                $sql -> bindParam(':session_uid', $_SESSION['uid'], PDO::PARAM_INT);
+                $sql -> bindParam(':waehrung', $_POST['waehrung'], PDO::PARAM_STR);
+                $sql->execute();
                 $konto = $sql->fetch(PDO::FETCH_ASSOC);
                 $buchungs_id = create_code(14);
                 if($konto['kontoid'] != 0){
@@ -80,13 +91,18 @@ if ($c == 0) {echo '<center>Keine Konten gefunden. Bitte schalte in deinem Userp
 foot();
 
 if(isset($_POST['waehrung']) && in_array($_POST['waehrung'], $erlaubte_schnittstellen)){
-    $sql = sql::$db->query("SELECT * FROM "._VMS_."_schnittstelle WHERE (aktiv = 1 OR aktiv= 3) AND schnittstelle='".$_POST['waehrung']."' LIMIT 1 ");
+    $sql = sql::$db->prepare("SELECT * FROM "._VMS_."_schnittstelle WHERE (aktiv = 1 OR aktiv= 3) AND schnittstelle=:waehrung LIMIT 1 ");
+    $sql -> bindParam(':waehrung', $_POST['waehrung'], PDO::PARAM_STR);
+    $sql -> execute();
     $schnittstelle = $sql->fetch();
     head("Einzahlen"); ?>
         <form action="" method="post">
             <input type="hidden" name="waehrung" value="<?php echo $_POST['waehrung']; ?>"/>
             <?php
-            $multi_kontoida = sql::$db->query("SELECT kontoid FROM "._VMS_."_multi_konten WHERE uid=".$_SESSION['uid']." AND waehrung='".$_POST['waehrung']."' LIMIT 1");
+            $multi_kontoida = sql::$db->prepare("SELECT kontoid FROM "._VMS_."_multi_konten WHERE uid=:session_uid AND waehrung=:waehrung LIMIT 1");
+            $multi_kontoida -> bindParam(':session_uid', $_SESSION['uid'], PDO::PARAM_INT);
+            $multi_kontoida -> bindParam(':waehrung', $_POST['waehrung'], PDO::PARAM_STR);
+            $multi_kontoida -> execute();
             if($multi_kontoida->rowCount() == 0){
                 echo 'Bitte lege im Userprofil deine Konto-ID fest.';
             }else{
-- 
GitLab