Mit csináljak ebbe a vendégkönyve, hogyha a felhasználó be van lépve név megadás nélkül eltárolja a nevet? (bövebben lent)
<?php
$conn = mysql_connect("host", "juzer", "jelszo");
mysql_select_db("adatbazis");
if(empty($_POST)){
echo '
<html>
<head>
<title>Üzenőfal</title>
</head>
<body>';
$query = mysql_query("SELECT * FROM messagewall ORDER by id DESC");
while($a=mysql_fetch_assoc($query)){
$message=$a['message'];
$message= str_replace("<", "<", $message);
$message= str_replace(">", ">", $message);
$message= str_replace(":)", "<img src='mosolyog.gif'>", $message);
$message= str_replace(":D", "<img src='neveto.gif'>", $message);
$message= str_replace(":@", "<img src='gonosz.gif'>", $message);
$message= str_replace(":(", "<img src='nem.gif'>", $message);
$message= str_replace("rss", "<img src='rss.png'>", $message);
$message= str_replace("facebook", "<img src='facebook.gif'>", $message);
$message= str_replace("like", "<img src='like_blue.png'>", $message);
echo '
Név: '.$a['username'].'<br>Dátum: '.$a['date'].'<br>Üzenet: '.$message.'<br><br>';
}
echo '
<hr>
A hozzászolásokban akár hangulatjeleket is használhatsz.Ezeket jelek illetve szavak használatával tudod előhozni!<br />
<img src="mosolyog.gif" /> :), <img src="neveto.gif" /> :D, <img src="gonosz.gif" /> :@, <img src="nem.gif" /> :(, <img src="rss.png" /> rss, <img src="facebook.gif" /> facebook, <img src="like_blue.png" /> like
<br />
<form method="post">
Név: '.$user['Username'].'<br>
Üzenet: <textarea style="width:45%;" name="message" cols="10" rows="10"></textarea>
<br>
<input type="submit" value="Küldés">
</form>
</body>
</html>';
}else{
if($_POST[''.$user['Username'].''] !== "" && $_POST['message'] !== ""){
mysql_query("INSERT INTO messagewall (username, message, date) VALUES ('".$_POST['username']."', '".$_POST['message']."', NOW() ) ");
echo '<b>Üzeneted rögzitettük!</b><br /><a href="loging.php?page=messagewall"> VISSZA </a>';
}
}
?>
A $user['Username tárolja a nevét] az már megvan, hogy ki írja hozzászolás elött, de azt nem tom, hogy kell, hogy a nevét is még, hozzáadja ha elküldte a formot.
Hát, ha már kiíratod a nevet, onnantól kezdve nagyon egyszerű lenne, az insertbe a username névhez ne a postosat add meg, hanem ugyan azt, amivel kiírod...
Egyébként a kódod több sebből vérzik, hogy finoman fogalmazzak.
Nézzük egy példát biztonsági résre, és ez csak egy a sok hiba közül?
mysql_query("INSERT INTO messagewall (username, message, date) VALUES ('".$_POST['username']."', '".$_POST['message']."', NOW() ) ");
Szerinted mit történik akkor, ha a POST tömbből valami izgalmasabbat kapsz mint egy szimpla felhasználónév és/vagy üzenet?
Szerintem még tanulj inkább rengeteget, és amíg nincs biztos tudásod, ne készíts éles honlapokat!
sok helyen láttam, hogy POST-ot használnak,
meg amugy is mit kapnék belőle, mindig azt kaptam amit akartam, mert elöző honlapot amit csináltam ott is ezt a kódot használtam és mindig jó volt, több 100 komment, csak ott nem volt regisztráció függő így ezért kérdeztem meg most.
Ezt is ajánlom figyelmedbe:
Ráadásul a kódod még XSS attack-hez is tuti.
Mi van akkor, ha az adatbázisba valaki egy remek kis scriptet küld be, és után te pedig azt kapod majd vissza az egyik lekérdezésedben?
Szvsz sz XSS-nek is érdemes lenne utánanézned.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!