Kezdőoldal » Számítástechnika » Weblapkészítés » Mit csináljak ebbe a vendégkön...

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)

Figyelt kérdés
SESSIONBAN van a bejelentkezve és azt akarom elérni, hogy név megadás nélkül hozzáadja a nevét a táblához, hogy ne hamisitsák meg mások.(komiba a kód)

2013. aug. 28. 11:51
 1/10 A kérdező kommentje:

<?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.

2013. aug. 28. 11:54
 2/10 anonim ***** válasza:

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.

2013. aug. 28. 12:34
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
Tedd be a júzernevet egy hidden field-be, akkor a form át fogja küldeni.
2013. aug. 28. 12:35
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:
ok, és miért vérezne több sebből finoman fogalmazva
2013. aug. 28. 12:45
 5/10 anonim ***** válasza:
100%

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!

2013. aug. 28. 13:18
Hasznos számodra ez a válasz?
 6/10 A kérdező kommentje:

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.

2013. aug. 28. 15:04
 7/10 anonim ***** válasza:
Nem azzal van a baj, hogy POST-ot használsz, hanem azzal, ahogy. Konkrétan nem ellenőrzöd a tartalmát. Nézz utána, mit jelent az SQL injection, és megérted, miért emelte ki az előző válaszoló.
2013. aug. 28. 15:07
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
Valóban ez így elég csúnya megoldást, egy minimális szűrés kéne erre, sőt nem ártana a < és > tagokat is a megfelelő html-es alternatívra cserélni.
2013. aug. 28. 22:30
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
Hmm ez utóbbit visszavonom, lehet jó, csak itt a cucc írta át.
2013. aug. 28. 22:31
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:

Ezt is ajánlom figyelmedbe:

[link]


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.

2013. aug. 28. 22:38
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!