Kom ihåg mig?

"pausa" en while-loop, och sen låta den fortsätta

 
Ämnesverktyg Visningsalternativ
Oläst 2012-03-22, 15:32 #21
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Absolut. Jag skulle föreslå följande:
PHP-kod:
$races = array('kvinna''man''barn');
if (isset(
$race_sort) && in_array($race_sort$races)) { 
    
$query .= "AND race = '" mysql_real_escape_string($race_sort) . "' ";

Eftersom man inte vill att queryn ska byggas upp av vilka textstränger som helst.
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-22, 16:34 #22
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Läste lite på php.net om mysql_real_escape_string, men förstod inte speciellt mycket om det.

Känner någon att hen vill berätta för mig varför man skall använda den funktionen i denna?
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-22, 18:00 #23
captaindoes avatar
captaindoe captaindoe är inte uppkopplad
Flitig postare
 
Reg.datum: Dec 2010
Inlägg: 431
captaindoe captaindoe är inte uppkopplad
Flitig postare
captaindoes avatar
 
Reg.datum: Dec 2010
Inlägg: 431
Låt oss säga att du har en sökfunktion och du hanterar den såhär:

PHP-kod:
mysql_query("SELECT * FROM search WHERE text='" $_GET['search'] . "'") or die(mysql_error()); 
Om en person skriver in:

Kod:
'; DROP TABLE search;
när de använder din sökfunktion kommer alltså din MySQL query att bli följande:

Kod:
SELECT * FROM search WHERE text=''; DROP TABLE search; '
Vilket är två stycken MySQL queries, den första queryen som hämtar all info från tabellen search, och den andra queryn raderar hela din tabell.

Om du använder
PHP-kod:
mysql_real_escape_string() 
så kommer frågan att se hur såhära:

Kod:
SELECT * FROM search WHERE text='\'; DROP TABLE search; '
Vilket betyder att MySQL endast kommer att se det som en fråga eftersom ' är "utkommenterat".

(Ber om ursäkt för min försvenskning av de engelska orden).
captaindoe är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-22, 18:15 #24
Jines avatar
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Feb 2005
Inlägg: 1 032
Jine Jine är inte uppkopplad
Har WN som tidsfördriv
Jines avatar
 
Reg.datum: Feb 2005
Inlägg: 1 032
Det captaindoe skrev fungerar dock inte i praktiken (iom att du inte kan köra dubbla queries i en mysql_query())

MEN!!!! Det är vääldigt viktigt att ALDRIG lita på NÅGOT användaren skriver, escape:a och rensa alltid, allt!

Enklaste sättet är att göra såhär:

$minvariabel = mysql_real_escape_string($_GET['var']);

På... allt
Jine är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-22, 19:56 #25
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Jag förstår!

Det är med andra ord, väldigt dumt att inte använda mysql_real_escape! :P
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-23, 01:00 #26
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Jake.Nu Jake.Nu är inte uppkopplad
Medlem
 
Reg.datum: Oct 2006
Inlägg: 224
Ger man en normal klient rättigheter att köra "DROP TABLE" så är man nog fel ute på annat håll..
Använder man 'prepared statements' så är det säkert mot denna typen av injektioner i.a.f.

Senast redigerad av Jake.Nu den 2012-03-23 klockan 01:02
Jake.Nu är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-23, 10:21 #27
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
jonssondesign jonssondesign är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Oct 2010
Inlägg: 709
Jake, du förstår det att jag har hållit på med php i drygt 5 dagar nu, 3 dagar när jag först la ut tråden.

Så jag hoppas du förstår att mina kunskaper om hur allt fungerar, och vad som kan hända pga vissa saker, inte riktigt har trängt in i min hjärta ännu :P Men de kommer!
jonssondesign är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-23, 10:50 #28
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
jonssondesign, du kan vara lugn. De flesta nybörjare gör det där misstaget och även många som sysslat med php betydligt längre än dig. En del anser uppenbarligen att man ska kunna allting redan innan man börjar koda Det är inte mycket att bry sig om, det är bra att du tar till dig saker och ting och försöker lära dig ordentligt.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-23, 12:05 #29
Jawns avatar
Jawn Jawn är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Aug 2004
Inlägg: 986
Jawn Jawn är inte uppkopplad
Mycket flitig postare
Jawns avatar
 
Reg.datum: Aug 2004
Inlägg: 986
Om du ska lära dig koda så börja leka med MYSQLI Prepare statements http://www.php.net/manual/en/mysqli.prepare.php
Jawn är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-03-23, 12:19 #30
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av Jawn Visa inlägg
Om du ska lära dig koda så börja leka med MYSQLI Prepare statements http://www.php.net/manual/en/mysqli.prepare.php
Man får nog en bättre förståelse för språket och programmering överlag om man lär sig vanliga "gamla" mysql-kommandon först tror jag. Beror väl lite på vilket syfte man har. Prepared statements är helt klart enklare om man vill undvika problem.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 08:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017