Skoči na vsebino

Forum ne deluje več - obiščite nas na racunalniske-novice.com




Slika

Vse o PHPju


Odgovorov v temi: 1931

#741 mlavta1

mlavta1

    Iznajdljivec

  • Members
  • 787 objav
  • Kraj:Poljane-sredisce vesolja

Objavljeno 17 april 2006 - 10:43

Nekaj me daje, mi nikakor ne uspe odkrit napake.

<?php

include ('config.php');

$id = $_GET['id'];

$query = mysql_query("SELECT * FROM `aegnor_users` WHERE `userid` = '".$id."'");

$sql = mysql_query($query);

$result = mysql_fetch_array($sql);

	echo $result['biography'] .  '<br />'; 

	?>

Potem pa v url napišem: http://mojastran.net/users.php?id=2
Pa mi ne dela. Javi tisto napako kao da nič ne najde. Invalid Mysql resource,..

Ali je kakšna napaka,..?

#742 publikum

publikum

    Velemojster

  • Members
  • 5.974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 17 april 2006 - 11:09

O moj bog...

1. Varnost

$id = intval($_GET['id']);

2. Prava napaka:

$query = "SELECT * FROM `aegnor_users` WHERE `userid` = '".$id."'";

$sql = mysql_query($query);


#743 MihaSkipster

MihaSkipster

    Govorec

  • Members
  • 2.087 objav
  • Kraj:SGC
  • Interesi:Splet, programiranje, vse kaj ma zveze z kompjuteri :D

Objavljeno 17 april 2006 - 11:30

hehe... res je.
1. Zakaj uporablas 2 query-a?
$query = mysql_query("..........");
$sql = mysql_query($query); ??????

Dovolj je že:
$query = "..........";
$sql = mysql_query($query);


2.Kaj pa če bi kdo napisal
www.tvojastran.com/users.php?id=1;TRUNCATE TABLE 'aegnor_users';

nekaj takega..
Ne zaupaj internetu! Ne zaupaj uporabniku in kaj ti lahko vse v addres bar vpiše.. Pa tudi pri POST moraš pazit!

Najosnovno je, da uporabiš mysql_real_escape_string();
pol pa si greš malo prebrat kak preprečit sql injectione, kak jih najti preden jih kdo drug.. Napiši v google sql injection..

#744 mlavta1

mlavta1

    Iznajdljivec

  • Members
  • 787 objav
  • Kraj:Poljane-sredisce vesolja

Objavljeno 17 april 2006 - 12:01

Ja, nisem opazu napake,.. Glede varnosti sm pa mislu pol,.. Hvala

Em, še neki. Sm dau namest id-ja username. Pa sploh noče. A je mogoče kej povezan s tem, da je id "glavni",..?

#745 bujes

bujes

    Poročevalec

  • Members
  • 505 objav
  • Kraj:Vrhnika

Objavljeno 17 april 2006 - 16:08

$id1=$_GET['novica'];

$id= mysql_real_escape_string($id1),

A s tem bom prepreču pol sql injection v tem primeru:
$novice=mysql_query("SELECT * FROM novice WHERE id = '$id'");

$novica = (mysql_fetch_array($novice));


#746 sverde1

sverde1

    Iznajdljivec

  • Members
  • 868 objav
  • Kraj:root

Objavljeno 17 april 2006 - 16:18

bujes, ja čeprov bi lahko malce na krajše spisal...
mlavta1, raje delaj z id-ji ker so unique username lahko imata 2 enak

#747 bujes

bujes

    Poročevalec

  • Members
  • 505 objav
  • Kraj:Vrhnika

Objavljeno 17 april 2006 - 16:21

sverde1, kako mislš krajše? Važn da je varno.

#748 mlavta1

mlavta1

    Iznajdljivec

  • Members
  • 787 objav
  • Kraj:Poljane-sredisce vesolja

Objavljeno 17 april 2006 - 16:53

mlavta1, raje delaj z id-ji ker so unique username lahko imata 2 enak


Ne, ne moreta imeti.

#749 sverde1

sverde1

    Iznajdljivec

  • Members
  • 868 objav
  • Kraj:root

Objavljeno 17 april 2006 - 17:14

bujes, ja sei je OK :cool: ne bom se spuščal v detajle
mlavta1, ja lahko se zgodi... pri id-ju se pa ne more to zgodit

#750 publikum

publikum

    Velemojster

  • Members
  • 5.974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 17 april 2006 - 17:32

sverde1, tako ID kot uporabniško ime sta lahko bodisi unikatna bodisi se lahko v enem stolpcu pojavljata večkrat... Pač odvisno od tega kako nastaviš ključe... :x

#751 sverde1

sverde1

    Iznajdljivec

  • Members
  • 868 objav
  • Kraj:root

Objavljeno 17 april 2006 - 17:34

id je praviloma pod autonumber ključem...

#752 publikum

publikum

    Velemojster

  • Members
  • 5.974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 17 april 2006 - 17:39

...kar pa še ne pomeni, da je potem celo polje unikatno.
Recimo, da ti vstaviš v bazo par vnosov s pomočjo t.i. auto increment IDjev. Nato pa popraviš en vnos in mu dodeliš nek ID, ki že obstaja, v skripti pa izpisuješ te vnose na podlagi IDja.

Kaj se zgodi - skripta ti izpiše dva vnosa.

V vsakem primeru moraš uporabljati unikatne ključe, da se res prepričaš o unikatnosti nekega polja. :roll:

#753 mlavta1

mlavta1

    Iznajdljivec

  • Members
  • 787 objav
  • Kraj:Poljane-sredisce vesolja

Objavljeno 17 april 2006 - 18:13

Ma ja, z username-om mi pa ne uspe.
Tkole zgleda tabela: http://86.61.72.232/users.jpg

Koda je pa taka:
<?php

include ('config.php');

$user = intval($_GET['user']);

$query = "SELECT * FROM `aegnor_users` WHERE `username` = '".$user."'";

$sql = mysql_query($query);

$result = mysql_fetch_array($sql);

$user = $result['username'];

	echo "$user";

	?>

Pa ne dela. Prosm za pomoč.

#754 publikum

publikum

    Velemojster

  • Members
  • 5.974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 17 april 2006 - 18:46

mlavta1, intval() spremeni vrednost nekega vhodnega podatka v številko (integer)...

Res želiš narediti to?

#755 mlavta1

mlavta1

    Iznajdljivec

  • Members
  • 787 objav
  • Kraj:Poljane-sredisce vesolja

Objavljeno 17 april 2006 - 19:30

Em, zakaj pa ne? Ali moram potem še nekaj glede varnosti narest ane?
Prikaže pa še zmer ne.

#756 MihaSkipster

MihaSkipster

    Govorec

  • Members
  • 2.087 objav
  • Kraj:SGC
  • Interesi:Splet, programiranje, vse kaj ma zveze z kompjuteri :D

Objavljeno 17 april 2006 - 20:07

Hmmm... bi res rad to? Npr more bit tak:

?user=someuser

intval spremeni to v npr: 67839673 .. < samo primer je..

preberi si
www.php.net/intval

Rad bi vprašal.. A je res sha1() funkcijo boljše uporabljat kot md5() ? Baje je sha1() bolj varen ker ima 40 charov ne samo 32 pa var. luknje nima neke ko ma md5()... je res?

#757 bujes

bujes

    Poročevalec

  • Members
  • 505 objav
  • Kraj:Vrhnika

Objavljeno 17 april 2006 - 20:09

A pa zmer v isto cifro spremeni?

#758 MihaSkipster

MihaSkipster

    Govorec

  • Members
  • 2.087 objav
  • Kraj:SGC
  • Interesi:Splet, programiranje, vse kaj ma zveze z kompjuteri :D

Objavljeno 17 april 2006 - 20:11

ja

#759 bujes

bujes

    Poročevalec

  • Members
  • 505 objav
  • Kraj:Vrhnika

Objavljeno 17 april 2006 - 20:12

In zakaj na primer je to uporabn?

#760 MihaSkipster

MihaSkipster

    Govorec

  • Members
  • 2.087 objav
  • Kraj:SGC
  • Interesi:Splet, programiranje, vse kaj ma zveze z kompjuteri :D

Objavljeno 17 april 2006 - 20:17

Nevem :zvizg:
mlavta ima user=nekobesedilo .. v tem primeru bo intval vrno 0 .. kar pa ni dobro.. ato pa je boljše imeti user=3 < torej neka stevilka



Dodaj odgovor



  


2 član(ov) bere to temo

0 članov, 2 gostov, 0 anonimnih uporabnikov