/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
MySQL injects.
Fra : Peter Anskjær


Dato : 20-11-04 11:49

Hej Ng
Jeg sidder med en søgealgoritme der laver et opslag i en database, i den
forbindelse er jeg lidt i tvivl om om jeg er sikret imod injects. Jeg tager
mit søgeord med $_POST og laver en addslashes på det, derefter smides det
ind i denne query-string:
$SEARCH_QUERY = "SELECT tekst FROM Artikler WHERE leksikon_soegeord LIKE
'%".$searchWord."%'ORDER BY emne, overskrift";
(forsimplet for overskuelighedens skyld.)

Det vil selvfølgeligt ikke være muligt at bruge specialtegn i søgningen, men
det er jeg heller ikke interesseret i. Jeg går ud fra at det er helt fint
eftersom jeg har kørt en addslashes på $searchWord.
Men er det okay.

Mvh
Peter



 
 
Christian Joergensen (21-11-2004)
Kommentar
Fra : Christian Joergensen


Dato : 21-11-04 10:05

On Sat, 20 Nov 2004 11:49:20 +0100, Peter Anskjær wrote:

> $SEARCH_QUERY = "SELECT tekst FROM Artikler WHERE leksikon_soegeord LIKE
> '%".$searchWord."%'ORDER BY emne, overskrift";
> (forsimplet for overskuelighedens skyld.)
>
> Det vil selvfølgeligt ikke være muligt at bruge specialtegn i søgningen, men
> det er jeg heller ikke interesseret i. Jeg går ud fra at det er helt fint
> eftersom jeg har kørt en addslashes på $searchWord.

Hvorfor saa ikke udnytte at man ikke maa bruge specialtegn, og lave noget
whitelisting, fremfor blacklisting:

   $searchWord = preg_replace('/[^a-zæøå\-]/', '', $searchWord);

Der kommer i hvertfald ikke nogle SQL-injections gennem det udtryk. Du kan
udvide det regulaere udtryk efter behov.

--
Christian Jørgensen | Use the Source, Luke!
http://www.razor.dk |


Christian Joergensen (21-11-2004)
Kommentar
Fra : Christian Joergensen


Dato : 21-11-04 10:28

On Sun, 21 Nov 2004 10:05:03 +0100, Christian Joergensen wrote:

> $searchWord = preg_replace('/[^a-zæøå\-]/', '', $searchWord);

Tilfoej eventuelt lige en 'i' som modifier :)

--
Christian Jørgensen | Codito, Ergo Sum
http://www.razor.dk |


Peter Anskjær (21-11-2004)
Kommentar
Fra : Peter Anskjær


Dato : 21-11-04 12:41

"Christian Joergensen" <mail@razor.dk> skrev i en meddelelse
news:pan.2004.11.21.09.28.02.51535@razor.dk...
> On Sun, 21 Nov 2004 10:05:03 +0100, Christian Joergensen wrote:
>
>> $searchWord = preg_replace('/[^a-zæøå\-]/', '', $searchWord);
>
> Tilfoej eventuelt lige en 'i' som modifier :)
>
Sådan havde jeg ikke lige tænkt på det, jeg tilføjede også tal og mellemrum
så der kan søges på flere sammenhængende ord og tal.
Tak for hjælpen.

Mvh
Peter



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste