Sicherheitslücke beim Löschen von Reservierungen behoben

This commit is contained in:
oesi
2015-04-28 18:26:29 +02:00
parent 07855b59e0
commit bb78764bef
2 changed files with 76 additions and 26 deletions
+33 -25
View File
@@ -24,6 +24,7 @@ require_once('../../../include/functions.inc.php');
require_once('../../../include/datum.class.php');
require_once('../../../include/benutzerberechtigung.class.php');
require_once('../../../include/phrasen.class.php');
require_once('../../../include/reservierung.class.php');
if (!$db = new basis_db())
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
@@ -54,23 +55,30 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
</head>
<body id="inhalt">
<H2>
<table class="tabcontent">
<tr>
<td>&nbsp;<a class="Item" href="index.php"><?php echo $p->t('lvplan/lehrveranstaltungsplan');?></a> &gt;&gt; <?php echo $p->t('lvplan/reservierungen');?></td>
<td align="right"><A href="help/index.html" class="hilfe" target="_blank">HELP&nbsp;</A></td>
</tr>
</table>
</H2>
<h2><a class="Item" href="index.php"><?php echo $p->t('lvplan/lehrveranstaltungsplan');?></a> &gt;&gt; <?php echo $p->t('lvplan/reservierungen');?></h2>
<?php
//Loeschen von Reservierungen
if (isset($id))
{
if(!is_numeric($id))
die('ungueltige ID');
$sql_query="DELETE FROM campus.tbl_reservierung WHERE reservierung_id='".addslashes($id)."'";
if($db->db_query($sql_query))
echo '<b>'.$p->t('lvplan/reservierungWurdeGeloescht').'</b><br>';
$reservierung = new reservierung();
if($reservierung->load($id))
{
if($reservierung->uid==$uid || $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
{
if($reservierung->delete($id))
echo '<b>'.$p->t('lvplan/reservierungWurdeGeloescht').'</b><br>';
else
echo $reservierung->errormsg;
}
else
{
echo '<b>'.$p->t('global/keineBerechtigung').'</b><br>';
}
}
else
echo '<b>'.$p->t('global/fehleraufgetreten').'!</b><br>';
}
@@ -81,7 +89,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
//EIGENE
$sql_query="SELECT * FROM campus.vw_reservierung
WHERE datum>='$datum' AND uid='$uid'
WHERE datum>=".$db->db_add_param($datum)." AND uid=".$db->db_add_param($uid)."
ORDER BY datum, titel, ort_kurzbz, stunde";
if (!$erg_res=$db->db_query($sql_query))
@@ -119,12 +127,12 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
if($insertamum!='')
$insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s');
echo '<tr class="liste'.$zeile.'" title="'.$p->t('global/angelegtAm').' '.$insertamum.$p->t('global/von').' '.$insertvon.'">';
echo '<td>'.$datum1.'</td>';
echo '<td>'.$titel.'</td>';
echo '<td>'.$stunde.'</td>';
echo '<td>'.$ort_kurzbz.'</td>';
echo '<td>'.$pers_uid.'</td>';
echo '<td>'.$beschreibung.'<a name="liste'.$i.'">&nbsp;</a></td>';
echo '<td>'.$db->convert_html_chars($datum1).'</td>';
echo '<td>'.$db->convert_html_chars($titel).'</td>';
echo '<td>'.$db->convert_html_chars($stunde).'</td>';
echo '<td>'.$db->convert_html_chars($ort_kurzbz).'</td>';
echo '<td>'.$db->convert_html_chars($pers_uid).'</td>';
echo '<td>'.$db->convert_html_chars($beschreibung).'<a name="liste'.$i.'">&nbsp;</a></td>';
$z=$i-1;
if (($pers_uid==$uid)|| $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
echo '<td><A class="Item" href="stpl_reserve_list.php?id='.$id.(isset($_GET['alle'])?'&alle=true':'').'#liste'.$z.'">Delete</A></td>';
@@ -142,7 +150,7 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
//ALLE
$sql_query="SELECT * FROM campus.vw_reservierung
WHERE datum>='$datum'
WHERE datum>=".$db->db_add_param($datum)."
ORDER BY datum, titel, ort_kurzbz, stunde";
if (!$erg_res=$db->db_query($sql_query))
die($db->db_last_error());
@@ -180,12 +188,12 @@ if(!$rechte->isBerechtigt('lehre/reservierung:begrenzt', null, 'suid'))
if($insertamum!='')
$insertamum = $datum_obj->formatDatum($insertamum, 'd.m.Y H:i:s');
echo '<tr class="liste'.$zeile.'" title="'.$p->t('global/angelegtAm').' '.$insertamum.$p->t('global/von').' '.$insertvon.'">';
echo '<td>'.$datum.'</td>';
echo '<td>'.$titel.'</td>';
echo '<td>'.$stunde.'</td>';
echo '<td>'.$ort_kurzbz.'</td>';
echo '<td>'.$pers_uid.'</td>';
echo '<td>'.$beschreibung.'<a name="liste'.$i.'">&nbsp;</a></td>';
echo '<td>'.$db->convert_html_chars($datum).'</td>';
echo '<td>'.$db->convert_html_chars($titel).'</td>';
echo '<td>'.$db->convert_html_chars($stunde).'</td>';
echo '<td>'.$db->convert_html_chars($ort_kurzbz).'</td>';
echo '<td>'.$db->convert_html_chars($pers_uid).'</td>';
echo '<td>'.$db->convert_html_chars($beschreibung).'<a name="liste'.$i.'">&nbsp;</a></td>';
$z=$i-1;
if (($pers_uid==$uid) || $rechte->isBerechtigt('lehre/reservierung', null, 'suid'))
echo '<td><A class="Item" href="stpl_reserve_list.php?id='.$id.(isset($_GET['alle'])?'&alle=true':'').'#liste'.$z.'">Delete</A></td>';
+43 -1
View File
@@ -54,7 +54,49 @@ class reservierung extends basis_db
if($reservierung_id!=null)
$this->load($reservierung_id);
}
/**
* Laedt eine Reservierung
* @param $reservierung_id
* @return boolean
*/
public function load($reservierung_id)
{
$qry = "SELECT * FROM campus.tbl_reservierung WHERE reservierung_id=".$this->db_add_param($reservierung_id);
if($result = $this->db_query($qry))
{
if($row = $this->db_fetch_object($result))
{
$this->reservierung_id = $row->reservierung_id;
$this->ort_kurzbz = $row->ort_kurzbz;
$this->studiengang_kz = $row->studiengang_kz;
$this->uid = $row->uid;
$this->stunde = $row->stunde;
$this->datum = $row->datum;
$this->titel = $row->titel;
$this->beschreibung = $row->beschreibung;
$this->semester = $row->semester;
$this->verband = $row->verband;
$this->gruppe = $row->gruppe;
$this->gruppe_kurzbz = $row->gruppe_kurzbz;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
return true;
}
else
{
$this->errormsg = 'Eintrag wurde nicht gefunden';
return false;
}
}
else
{
$this->errormsg = 'Fehler beim Ladend er Daten';
return false;
}
}
/**
* Prueft die Variablen vor dem Speichern
* auf Gueltigkeit.