hallo,

ik heb een nieuwsscript en de admin daarvan zit geen beveiliging op, me vraag is hoe beveilig ik dit script?

als je het weet wil je het dan aanpassen zodat ik het meteen kan gebruiken, hartelijk bedankt.


<div align="center">
<table width="100%" border="1" cellspacing="0" cellpadding="2"
bordercolor="#999999" bgcolor="#E1F3E5">
<tr bgcolor="#E1F3E5">
<td colspan="3"><font face="Verdana" size="1"><b>Admin
pagina:</b></font></td>
</tr>
<tr bgcolor="#E1F3E5">
<td width="5%">
<div align="center"><font face="Verdana" size="1"><b>Id:</b></font></div>
</td>
<td width="56%">
<div align="center"><font size="1" face="Verdana"><b>Onderwerp:</b></font></div>
</td>
<td width="39%">
<div align="center"><font size="1" face="Verdana"><b>Opties:</b></font></div>
</td>
</tr>
<?php
include ('../config.php');
$query = "SELECT * FROM nieuws ORDER BY id DESC";
$resultaat = mysql_query($query) or die (mysql_error());
while ($rij = mysql_fetch_object($resultaat)){
echo "
<tr bgcolor=\"#E1F3E5\">
<td width=\"3%\">
<div align=\"center\">&nbsp;<font face=\"Verdana, Arial,
Helvetica, sans-serif\" size=\"1\">$rij->id</font></div>
</td><td width=\"58%\">
<div align=\"center\"><font face=\"Verdana, Arial, Helvetica,
sans-serif\" size=\"1\">&nbsp;$rij->onderwerp</font></div>
</td><td width=\"39%\">
<div align=\"center\"><font face=\"Verdana, Arial, Helvetica,
sans-serif\" size=\"1\">
[<a href=\"../verandernieuws.php?id=$rij->id\">Verander</a>]
[<a href=\"../verwijdernieuws.php?id=$rij->id\">Verwijder</a>]
</font></div></td></tr>
";} ?>
</table>
</div>
Hoe bedoel je beveilig? Dat alleen de Admin dit kan gebruiken?

Maak een formulier aan dat post naar deze pagina

Noem een hiddenveld 'check' en 2 andere formelementen gebruik je voor pass en username.

Op het begin van deze pagina plaats je dan

<?php
if(!isset($_POST['check'])){

die("Niet ingelogd!");
}else if(($_POST['pass'] == "password") && ($_POST['user'] == "username")){

// login goed
// hier de pagina
}
?>
:/ dat is toch ook geen goede beveiliging. Trouwens die admin pagina moet waarschijnlijk wel een keer herladen worden voor bijv het delten van iets dus $PHP_SELF. DUS dan werkt je check niet meer.

En als dat veld hidden is dan wordt check toch altijd geset :?
ik heb zelf wat jij wilt maar daarvoor heb ik iig 2 db tabellen, en dan check ik bij het inloggen of je naam een record heeft in de admin tabel en als dat zo is wordt $admin '1' en als dat neit zo is wordt $admin '0', dan doe ik session_register(admin); en op de paginas kijk ik dan of je $_SESSION["admin"] '1'als waarde heeft, is dat zo dan krijg je toegang, anders niet.

suc6
:/ dat is toch ook geen goede beveiliging. Trouwens die admin pagina moet waarschijnlijk wel een keer herladen worden voor bijv het delten van iets dus $PHP_SELF. DUS dan werkt je check niet meer.

En als dat veld hidden is dan wordt check toch altijd geset :?


1) Je kunt op die pagina de POSTS omzetten in SESSIONS. (zowieso)

2) De hiddenfield is er om te kijken of er wel via een geldige manier de pagina bereikt is.

3) De passwoorden die er op staan moet je sowieso encrypten, liefst md5()

Reageren