/ 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
sikre sig mod hostile input...
Fra : Jesper Brunholm


Dato : 09-07-02 11:51

Jeg har en serie input felter hvor jeg skal sikre mig imod at serveren
kan hackes gennem input-felterne... Hvad bruger i, og har i nogen
kommentarer til flg:

$Arbejdsplads = addslashes(htmlentities(strip_tags($Arbejdsplads)));

(jeg bruger så stripslashes inden output)

venligst

Jesper Brunholm

--
Phønix - dansk folk-musik fra unge musikere - http://www.phonixfolk.dk


 
 
Peter Brodersen (09-07-2002)
Kommentar
Fra : Peter Brodersen


Dato : 09-07-02 11:59

On Tue, 09 Jul 2002 12:50:45 +0200, Jesper Brunholm
<nospam@brunholm-scharff.dk> wrote:

>Jeg har en serie input felter hvor jeg skal sikre mig imod at serveren
>kan hackes gennem input-felterne...

Det kan stadigvæk afhænge lidt af hvordan, du laver dine input-felter.
Hvis du fx laver dem med:

print "<input type='text' name='navn' value='$navn'>";

.... så kan folk godt snyde sig ud af dem, idet htmlentities() ikke
behandler pling-tegnet: '

Der er i øvrigt ingen grund til at bruge htmlentities(); du kan nøjes
med htmlspecialchars().

--
- Peter Brodersen

Jonas Koch Bentzen (09-07-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 09-07-02 13:03

Peter Brodersen skrev:
>
> Det kan stadigvæk afhænge lidt af hvordan, du laver dine input-felter.
> Hvis du fx laver dem med:
>
> print "<input type='text' name='navn' value='$navn'>";
>
> ... så kan folk godt snyde sig ud af dem, idet htmlentities() ikke
> behandler pling-tegnet: '

I både htmlspecialchars() og htmlentities() kan man godt lave
"pling-tegnet" (også kaldet en apostrof) om til "&#039;", hvis man
bruger konstanten ENT_QUOTES som andet argument:

echo "<input type='text' name='navn' value='".htmlspecialchars($navn,
ENT_QUOTES)."'/>\n";

http://dk.php.net/manual/en/function.htmlspecialchars.php


Niels Andersen (09-07-2002)
Kommentar
Fra : Niels Andersen


Dato : 09-07-02 16:13

Jesper Brunholm wrote in <3D2AC005.2080108@brunholm-scharff.dk>:
> $Arbejdsplads = addslashes(htmlentities(strip_tags($Arbejdsplads)));
> (jeg bruger så stripslashes inden output)

Der er allerede blevet snakket om hvad der kan gøres. Jeg vil lige nævne
lidt om hvornår det bør gøres. :)

addslashes køres mens du opbygger SQL-query til databasen.
stripslashes har du slet ikke brug for, medmindre PHP selv kører addslashes
på et forkert tidspunkt.

Når du så vil vise teksten i et html-dokument, er du naturligvis nød til at
lave det til html-kode.
Jeg plejer at køre en htmlentities og derefter nl2br.
Bruges det som Jonas nævner, skal man huske at få htmlentities til at tage
hensyn til quotes også.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Jonas Koch Bentzen (09-07-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 09-07-02 16:39

Niels Andersen skrev:
>
> Når du så vil vise teksten i et html-dokument, er du naturligvis nød til at
> lave det til html-kode.
> Jeg plejer at køre en htmlentities og derefter nl2br.

Jeg vil give Peter ret i, at det normalt kun er nødvendigt at bruge
htmlspecialchars(). Der er ingen grund til at bruge htmlentities().


Niels Andersen (09-07-2002)
Kommentar
Fra : Niels Andersen


Dato : 09-07-02 16:45

Jonas Koch Bentzen wrote in <3D2B0380.7060408@eksempel.dk>:
>> Når du så vil vise teksten i et html-dokument, er du naturligvis nød til
>> at lave det til html-kode.
>> Jeg plejer at køre en htmlentities og derefter nl2br.
> Jeg vil give Peter ret i, at det normalt kun er nødvendigt at bruge
> htmlspecialchars(). Der er ingen grund til at bruge htmlentities().

Jeg er også enig med Peter, beklager at jeg fik skrevet forkert. :)

Det er naturligvis htmlspecialchars der skal køres.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

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

Månedens bedste
Årets bedste
Sidste års bedste