» »

[php] spremenljivke v mysql poizvedbi

[php] spremenljivke v mysql poizvedbi

deleted ::

Torej zanima me, kako bi lahko v mysql poizvedbi dostopal do neke prej definirane spremenljivke. En primer na hitro spackan:

$spremenljivka = neznanec;
$seznam = mysql_query('SELECT * FROM stacuna WHERE gost = $spremenljivka;');
while($vrstica = mysql_fetch_array($seznam))
{
echo "Burek: " . $vrstica['burek'];
echo "
";
echo "Kebab: " . $vrstica['kebab'];
echo "
";
echo "Pasta: " . $vrstica['pasta'];
echo "
";
echo "Riz: " . $vrstica['riz'];
echo "
";
}

(Mozno, da kaj ni logicno, vazno je, da veste za kaj se gre.)
  • spremenil: deleted ()

netanyahu ::

1. Uporabiti moraš "niz" namesto 'niz', če želiš, da PHP vstavi spremenljivke. Primer:
$x=5; echo "Vrednost: $x"; /* dela */ echo 'Vrednost: $x'; /* ne dela*/
http://php.net/manual/en/language.types...

2. Nikoli, ampak res nikoli ne delaj poizvedb na način, kot si napisal. Google: sql injection, prvih sedem rezultatov. Vse parametre ali dosledno escapeaj ali bolje, uporabi prepared statements.

Ziga Dolhar ::

Kritična opomba k netanyahuju.

1. Izogibaj se ustvarjanju stringov z vnašanjem spremenljivk v dvojne narekovaje.

$burek = "Bla: $bla";
lahko precej 'varneje' zapišeš kot:
$burek = 'Bla: '.$bla;

Konkatenacija naj ima prednost pred prvo metodo. Lahko pripomore k čitljivosti kode z vidika razlikovanja statičnih in dinamičnih sestavin generiranih stringov.

2. SELECT * FROM stacuna WHERE gost = $spremenljivka;'

Če je gost string, ga nujno
a) odeni v narekovaje!, in
b) _RES_ ne pozabi na escapanje. Če pozabiš na to, na kar te je netanyahu opozoril, boš morebiti prišel še v novico na Slotechu ;).
https://dolhar.si/

deleted ::

Hvala za nasvete, nisem profesonalni programer, programiram pač po logiki in zelo slabo poznam zadeve glede varnosti v skriptah. Sicer pa sem si pred kratkim zadal precej velik projekt, niti ne vem, če ga bom zmogel sam - a mi dokaj uspeva, razen varnostnih lukenj.
Torej, iz vajinih sporočil lahko razberem, da je veliko varneje uporabljati enojne navednice. Če mi lahko na kakeršenkoli način svetujete glede tega, na kaj naj pazim, da se izognem zlorabam, bom izredno vesel. Kot sem že rekel, programiram večinoma po logiki, če se mi dozdeva, da mi nekaj, npr. neka funkcija manjka, pogledam v dokumentacijo in to je to. Všeč mi je, ker je vse tako zelo logično in eksplicitno. Stvar me zelo zanima in čimveč bi se rad naučil, da bi tudi kaj poštenega ustvaril in mi ne bi potem nekdo tega na tako nizkoten način haxnu. :)

Ziga Dolhar ::

Zgolj za začetek - malce star, a še vedno aktualen. [ Slo - Tech : Varnost v PHPju]
https://dolhar.si/

deleted ::

Prebrano. Se priporočam še za kaj takega, mogoče bi bilo dobro, če bi bile stvari bolj konkretne, kaj je moč v določenih primerih zlorabiti, da bi lahko potem predvidel čimboljše rešitve.

KoMar- ::

 Klikni za povečavo :)

Klikni za povečavo :)

Zgodovina sprememb…

  • spremenil: KoMar- ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[PHP]Zajem podatkov iz baze

Oddelek: Programiranje
354030 (3667) cobrica
»

Procentualna tabela s fiksno glavo

Oddelek: Programiranje
71860 (1744) alen1
»

[php, mysql] sortiranje izpisa iz baze

Oddelek: Izdelava spletišč
262646 (2165) Binji
»

Raziskava o ranljivosti spletnih strani z SQL bazami podatkov

Oddelek: Novice / Varnost
204915 (4251) sverde21
»

login v phpju?

Oddelek: Programiranje
471612 (1272) rc-car

Več podobnih tem