Hallo Forumfreunde,
habe mich ein wenig mit der Injection beschäftigt. Habe ein Formular erstellt und würde es gerne wissen ob das beschäftigen mit Injection geholfen hat oder immer noch der Code gefährdet ist. Hier mein Code dazu:
PHP-Code:
<link rel="stylesheet" type="text/css" href="/templates/big-garath/css/Verein.css"/>
<?php
$ordner = $_SERVER['DOCUMENT_ROOT'];
require_once($ordner . '/Con/verb.inc.php');
require_once($ordner . '/Con/probe.php');
defined('_JEXEC') or die('Rufen Sie die Seite auf: => http://' . $_SERVER['HTTP_HOST'] . '/index.php');
?>
<?php
$jetzt = "location: http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$ausw = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] . "?" . $_SERVER['QUERY_STRING'];
mysql_select_db($database_probe, $probe);
$query_anwender = "SELECT benutzername, angemeldet, passwort, cookie_hash FROM `geeheim`
WHERE `angemeldet` ='1'";
$anwender = mysql_query($query_anwender, $probe) or die(mysql_error());
$mitgl = mysql_fetch_assoc($anwender);
$anzgl = mysql_num_rows($anwender);
if (isset($_GET["mit"]) && is_numeric($_GET["mit"]))
{
// bei aufruf mit GET["mit"] dann hatte ich mich schon angemeldet
// Hier das Array POST wiederherstellen
$_POST['login'] = Anmelden;
$anzgl = $anzgl;
$_POST['benutzer'] = $_mitgl['benutzername'];
$_POST['anzahl'] = $anzgl;
}
//hier wird die Tabelle auf null gestellt wenn erstes mal aufgerufen wird
if (( ! isset( $_POST['login'])) )
{
// "first" alle Benutzer auf nicht angemeldet stellen
mysql_select_db($database_probe, $probe);
$sql = "UPDATE geeheim SET angemeldet = (NULL) WHERE angemeldet = 1";
$anwender = mysql_query ($sql, $probe) or die(mysql_error());
}
else
{
$ben = $_POST['benutzer'];
// "Angemeldet" ist Bentzer angemeldet dann wird auf 1 gestellt;
mysql_select_db($database_probe, $probe);
$sql = "UPDATE geeheim SET angemeldet = 1 WHERE benutzername ='" . $ben . "'";
$anwender = mysql_query ($sql, $probe) or die(mysql_error());
}
// Hier die Datenbank aufrufen für die Zugangskontrolle
mysql_select_db($database_probe, $probe);
$query_anwender = "SELECT benutzername, angemeldet, passwort, cookie_hash FROM `geeheim`
WHERE `angemeldet` ='1'";
$anwender = mysql_query($query_anwender, $probe) or die(mysql_error());
$mitgl = mysql_fetch_assoc($anwender);
$anzgl = mysql_num_rows($anwender);
// Wenn Benutzer nicht angemeldet dann Formular einblenden
if ( ! $anzgl == 1 )
{
?>
<h2>Hier nur für autorisierte anwenderer!</h2>
<p><form id="loginform" method="post" action="<?php echo $selber; ?>" name="loginform" >
<label for="benutzer">Benutzer: </label><input type="text" name="benutzer" id="benutzer" value="" /><br /><br />
<label for="passwort">Passwort: </label><input type="password" name="passwort" id="passwort" value="" /><br /><br />
<input name="anzahl" type="hidden" value="1" />
<input type="submit" name="login" id="login" value="Anmelden" />
</form></p>
<?php
}
if ( (! $_POST['benutzer'] == $mitgl['benutzername']) && ( ! md5($_POST['passwort']) == $mitgl['passwort']))
{
header ($jetzt);
die;
}
// Formular noch nicht ausgefüllt
if ( ! $anzgl == 0 )
{
// Hier wenn angemeldet geht es weiter
if (isset($_GET['mit']) && is_numeric($_GET['mit']) )
{
$ausw = substr ( $ausw, 0, -6 );
}
// Text für die Links
$links = array("Neues anwender eintragen","Übernahme", "Ändern", "Löschen", "Listen");
// die Datei für Include
$links_F = array("Mitgl_neu","Mitgl_uebern", "Mitgl_aend", "Mitgl_del", "Mitgl_sonst");
// activen Link auswählen __ Anzahl der Einträge
$anz = count ($links) ;
// Anzahl der Einträge im Array
$cln = "n" ; // nicht activer Link
$cln_p = "n_active"; // activer Link
$x = 0;
if ( ! isset($_POST['do_print']))
{
echo "</style>";
echo '<ul class="u_vnavi" >';
// Navigation für anwenderer anhand des Arrays
for ( $x = 0; $x < $anz; $x++ )
{
if ( $_GET['mit'] == $x+1)
{
$art = $cln_p; // active
} else {
$art = $cln; // nicht active
}
echo '<li class="vnavi"><a href="';
echo $ausw . '&mit=' . ($x+1) . '"';
echo ' class="';
echo $art . '">';
echo $links[$x] . '</a>' . '</li>' . "\n";
}
echo "</ul>";
}
if (isset($_GET['mit']) & is_numeric( $_GET['mit']))
{
$file_in = $links_F[$_GET['mit']-1]. ".php";
// je nach Wahl eines Menues Aufruf
require_once( $file_in);
}
}
?>
Vielen Dank im voraus. Ist noch Nachbesserung nötig?