Autor | Zpráva | ||
---|---|---|---|
jquery Profil * |
#1 · Zasláno: 5. 3. 2012, 14:08:50
Ahoj,
niekto sa mi hackol do databázy a naozaj netuším ako :( mám registráciu cez jquery ajax() druhe=0; $("#password").change(function() { var password = $("#password").val(); if(password.length >= 5 && password.length < 16 ) { $("#a").html('ok'); druhe=1; } }); $('#button').click(function() { if (druhe != 1){ alert('niečo nie je splnené!'); } if (druhe == 1){ var heslo = $("#password").val(); $.ajax({ type: "POST", url: "check.php", data: "heslo="+heslo, success: function(msge){ $("#obsah").ajaxComplete(function(event, request, settings){ if(msge == 'OK') { $("#obsah").html('ok registrácia úspešná'); var druhe=0; } }); } }); } }); <?php header("Content-Type: text/html; charset=utf-8"); session_start(); $dbHost = ''; $dbUsername = ''; $dbPassword = ''; $dbDatabase = ''; $db = mysql_connect($dbHost, $dbUsername, $dbPassword) or die ("Nepodarilo sa spojiť zo serverom."); mysql_select_db ($dbDatabase, $db) or die ("Spojenie s databázou nefunguje."); if(isset($_POST['heslo'])) { $heslo = $_POST['heslo']; $jeaaa = mysql_query("select nieco from uzivatelia order by id desc limit 1"); $joaaa = mysql_fetch_assoc ($jeaaa); $idd=$joaaa['nieco']; mysql_query ("insert into uzivatelia (heslo) values ('$heslo')"); mysql_close($db); echo 'OK'; } ?> Robím niečo zle? Kde môže byť chyba? Ako sa mi niekto dokázal dostať do databázy a zmeniť v nej pár vecí? vopred ďakujem |
||
Someone Profil |
#2 · Zasláno: 5. 3. 2012, 14:13:44
nikde tam nevidím mysql_real_escape_string()
|
||
Radek9 Profil |
#3 · Zasláno: 5. 3. 2012, 14:15:30
jquery:
Na řádku 12 v PHP neošetřuješ vstup. Dalo by se to vyřešit např. funkcí MySQL_real_escape_string. |
||
jquery Profil * |
#4 · Zasláno: 5. 3. 2012, 14:15:31 · Upravil/a: jquery
a to je k čomu?
a to už by stačilo a nedostane sa mi tam nikto? A môžete mi prosím vysvetliť na čo presne slúži tá funkcia. ďakujem |
||
Radek9 Profil |
jquery:
kdybych do tvého vstupního políčka nebo někam napsal něco takového: (To je asi zrovna blbě, ale ten řetězec se tak zkonstruovat dá.) '); DELETE FROM uzivatelia; (' |
||
Someone Profil |
#6 · Zasláno: 5. 3. 2012, 14:17:53
jquery:
„a to je k čomu?“ Escapuje to znaky typu " ' takže vznikne -> \" \' |
||
_es Profil |
#7 · Zasláno: 5. 3. 2012, 14:22:25
|
||
jquery Profil * |
#8 · Zasláno: 5. 3. 2012, 14:28:55
aha už som tomu pochopil ďakujem.
malo by to vypadať takto? $jeaaa = mysql_query("select nieco from uzivatelia order by id desc limit 1"); $joaaa = mysql_fetch_assoc ($jeaaa); $idd = $joaaa['nieco']; $idd = mysql_real_escape_string($idd); |
||
Someone Profil |
Ne, [#8] ošetruješ výstup z DB musíš ošetřit vstup. Takže když se uživatel přihlašuje(nebo cokoliv jiného) tak to musíš ošetřit.
mysql_query("SELECT id FROM uzivatele WHERE uzivatele.jmeno='".mysql_real_escape_string($_POST['prihlasovaci_jmeno'])."' AND uzivatele.heslo='".mysql_real_escape_string($_POST['prihlasovaci_heslo'])."'"); |
||
jquery Profil * |
#10 · Zasláno: 5. 3. 2012, 14:46:44 · Upravil/a: jquery
aha, čiže to treba spraviť iba keď berem niečo z databázy z $_POST[nieco']?
lebo to v [#8] berem z databázy len posledné id vid: $jeaaa = mysql_query("select id from uzivatelia order by id desc limit 1"); $joaaa = mysql_fetch_assoc ($jeaaa); $idd = $joaaa['id']; a tam to treba teda neni? a nebolo by dobré spraviť aj toto: $heslo =mysql_real_escape_string($_POST['heslo']); |
||
Someone Profil |
Třeba je to tam, kde figuruje SQL příkaz, do kterého má možnost zasáhnout uživatel. Přihlašování, registrace, prostě všude kde jsou inputy a na základě jejich obsahu stavíte SQL příkaz. To znamená, že
$jeaaa = mysql_query("select id from uzivatelia order by id desc limit 1"); $joaaa = mysql_fetch_assoc ($jeaaa); $idd = $joaaa['id']; -> toto, kde vybíráte ID posledně registrovaného uživatele. Tam se nic escapovat nemusí.
jquery: „a nebolo by dobré spraviť aj toto:“ to by bylo dobré. |
||
jquery Profil * |
#12 · Zasláno: 5. 3. 2012, 14:55:05
aha ďakujem veľmi pekne za pomoc.
teda takto môže byť keď kontrolujem email áno? $email=mysql_real_escape_string($_POST['email']); $sql = mysql_query ("SELECT * FROM uzivatelia where email='$email'"); |
||
Someone Profil |
#13 · Zasláno: 5. 3. 2012, 14:55:53
jquery:
„takto môže byť keď kontrolujem email áno?“ Ano |
||
jquery Profil * |
#14 · Zasláno: 5. 3. 2012, 14:57:17 · Upravil/a: jquery
dobre ešte raz ďakujem.
ešte jedna otázka keď mám v session uložený email a vyberám dáta z db podľa tej session tak tam to nemusí asi byť že? Someone: a napísal som vám email budem rád ak si ho prečítate |
||
Časová prodleva: 12 let
|
0