Tegen wat moet ik mijn site allemaal beveiligen? En hoe moet ik dit doen?
Beveiligen
-
-
Guest, wil je besparen op je domeinnamen? (ad)
-
Vooral op XSS en SQL injections.
Beveiligen met: [func]strip_tags[/func], [func]mysql_real_escape_string[/func], [func]htmlspecialchars[/func] of [func]htmlentities[/func].Neem aan dat het met deze PHP pagina's duidelijk is.
-
Hoe kan je een $_GET het best beveiligen? via mysql_real_escape_string?
-
-
Met [func]strip_tags[/func] en [func]mysql_real_escape_string[/func].
[func]htmlspecialchars[/func] en [func]htmlentities[/func] gebruik je als je bijvoorbeeld een textveld heb om bijvoorbeeld nieuws te posten. Dan typt iemand bijvoorbeeld een é en die word dan niet vervangen (dan zie je zo'n vaag tekentje). Die é word dan automatisch in een é vervangen waardoor het goed word weergegeven.
Als je dan bijvoorbeeld nieuws wil bewerken moet je uiteraard niet die [func]htmlspecialchars[/func] en [func]htmlentities[/func] toepassen omdat je dan in een textveld ook al é krijgt te zien. Daarom moet je [func]htmlspecialchars[/func] en [func]htmlentities[/func] alleen gebruiken bij een output.
In de MySQL database zet je dus gewoon de é en niet de é.Hieronder vind je een compeet nieuws systeem.
Dit mag je gratis van me hebben.
Maak in je database aan:PHPCREATE TABLE IF NOT EXISTS `nieuws` ( `id` int(100) NOT NULL default '0', `titel` varchar(100) NOT NULL, `omschrijving` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
En de hele PHP pagina, opslaan als nieuws.php:
PHP
Toon Meer<?php echo '<h1>Nieuws</h1><br />'; if($_GET['a'] == "nieuw"){ // Nieuws plaatsen if(isset($_POST['submit'])){ // Formulier is gepost $titel = strip_tags(mysql_real_escape_string($_POST['titel'])); $omschrijving = strip_tags(mysql_real_escape_string($_POST['titel']); if(strlen($titel) >= 3 && strlen($titel)) <= 100){ // Controleer of de titel groter dan 2 is en kleiner dan 100 tekens if(strlen($omschrijving) >= 5 && strlen($omschrijving) <= 1250){ // Controleer of de omschrijving groter dan 2 tekens en kleiner dan 1251 tekens is mysql_query("INSERT INTO nieuws (titel, omschrijving) VALUES('".$titel."', '".$omschrijving."')"); echo '<span style="color: green;"><b>Nieuws is met succes geplaatst</b>.</span><br /> <a href="nieuws.php?a=nieuw">Keer terug</a> naar de nieuws overzicht pagina'; } else{ echo '<span style="color: red;"><b>De omschrijving is kleiner dan 5 of groter dan 1250 tekens</b>.</span><br /> <a href="nieuws.php?a=nieuw">Keer terug</a> naar de nieuws toevoeg pagina'; } } else{ echo '<span style="color: red;"><b>De titel is kleiner dan 3 of groter dan 100 tekens</b>.</span><br /> <a href="nieuws.php?a=nieuw">Keer terug</a> naar de nieuws toevoeg pagina'; } } else{ echo ' <h2>Nieuws toevoegen</h2> <form method="post" action=""> <b>Titel:</b><br /> <input type="text" name="titel" size="40" maxlength="100" /><br /> <b>Omschrijving:</b><br /> <textarea name="omschrijving" cols="15" rows="8" maxlength="1250"></textarea><br /> <br /> <input type="submit" name="submit" value="Maak nieuws aan" /> </form> '; } } else if($_GET['a'] == "edit"){ // Nieuws wijzigen if(is_numeric($_GET['id'])){ // Controleer of id een nummer is $res = mysql_query("SELECT id, titel, omschrijving FROM nieuws WHERE id=".$_GET['id'].""); if(mysql_num_rows($res) > 0){ // Controleer of nieuws bestaat if(isset($_POST['submit'])){ // Formulier is gepost $titel = strip_tags(mysql_real_escape_string($_POST['titel'])); $omschrijving = strip_tags(mysql_real_escape_string($_POST['titel']); if(strlen($titel) >= 3 && strlen($titel)) <= 100){ // Controleer of de titel groter dan 2 is en kleiner dan 100 tekens if(strlen($omschrijving) >= 5 && strlen($omschrijving) <= 1250){ // Controleer of de omschrijving groter dan 2 tekens en kleiner dan 1251 tekens is mysql_query("UPDATE nieuws SET titel='".$titel."', omschrijving='".$omschrijving."' WHERE id=".$sel['id'].""); echo '<span style="color: green;"><b>Nieuws is met succes bewerkt</b>.</span><br /> <a href="nieuws.php?a=nieuw">Keer terug</a> naar de nieuws overzicht pagina'; } else{ echo '<span style="color: red;"><b>De omschrijving is kleiner dan 5 of groter dan 1250 tekens</b>.</span><br /> <a href="nieuws.php?a=nieuw&id='.$sel['id'].'">Keer terug</a> naar de nieuws bewerk pagina'; } } else{ echo '<span style="color: red;"><b>De titel is kleiner dan 3 of groter dan 100 tekens</b>.</span><br /> <a href="nieuws.php?a=nieuw&id='.$sel['id'].'">Keer terug</a> naar de nieuws bewerk pagina'; } } else{ echo ' <h2>Nieuws bewerken</h2> <form method="post" action=""> <b>Titel:</b><br /> <input type="text" name="titel" size="40" maxlength="100" value="'.$sel['titel'].'" /><br /> <b>Omschrijving:</b><br /> <textarea name="omschrijving" cols="15" rows="8" maxlength="1250">'.$sel['omschrijving'].'</textarea><br /> <br /> <input type="submit" name="submit" value="Bewerk nieuws" /> </form> '; } } else{ echo '<span style="color: red;"><b>Dit nieuws bestaat niet (meer)</b>.</span><br /> <a href="nieuws.php?a=edit">Keer terug</a> naar de nieuws bewerk pagina'; } } else{ // Kies nieuws om te bewerken $res = mysql_query("SELECT id, titel FROM nieuws ORDER BY id DESC LIMIT 2"); while($sel = mysql_fetch_array($res)){ // Zet speciale karakters en enters om naar HTML valid tekens echo '<a href="nieuws.php?a=edit&id='.$sel['id'].'"><b>Bewerk</b> "'.htmlspecialchars($sel['titel']).'"</a><br />'; } } } else{ // Nieuws laten zien $res = mysql_query("SELECT titel, omschrijving FROM nieuws ORDER BY id DESC LIMIT 2"); while($sel = mysql_fetch_array($res)){ // Zet speciale karakters en enters om naar HTML valid tekens echo '<h2>'.htmlspecialchars($sel['titel']).'</h2>'; echo htmlspecialchars(nl2br($sel['omschrijving'])); echo '<br />'; } } ?>
-
Bedankt
en ik ben van plan alles zelf te maken dus niet nodig , maar toch bedankt -
Je kan het iig gebruiken als handleiding en/of documentatie ;).
Dit systeempje is optimaal beveiligd ;). -
idd als handleiding is het wel handig aangezien ik toch redelijk veel moet opzoeken terwijl ik bezig ben
Nieuwe reactie samengevoegd met originele reactie op 26.03.11 17:32:10:
heeft iemand een tutorial voor dit? :
ik wil dat er maximaal 20 leden op 1 pagina staan , vanaf dan moet er een nieuwe pagina aangemaakt worden -
-
Beveilig tegen bots, greasemonkey.
-
-
Oja, snelheidsfoutje
Pas ik morgen wel even aan.
Participate now!
Heb je nog geen account? Registreer je nu en word deel van onze community!