/ 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
Disable php parseren...
Fra : Ivan J. Eis


Dato : 03-06-04 00:34

Hej!

Jeg har et mindre problem. Jeg har en html/php side hvor jeg indsætter en
email (dvs. emailbody) hvorefter jeg så sender siden igennem php-parseren.
Der er dog det problem, at hvis en mindre venlig bruger så indsætter noget
php kode i email'en (f.eks. <? phpinfo(); ?> ) kan vedkommende udføre php
kode.

Derfor går mit spørgsmål på om der findes en kommande/tag som slå php
parseren fra. Se nedestående.

<HTML>
....
....
<? PHP_OFF ?>
Email her...
.....
<?PHP_ON?>


Takker på forhånd!

Ivan





---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.693 / Virus Database: 454 - Release Date: 31-05-2004



 
 
Kim Andersen (03-06-2004)
Kommentar
Fra : Kim Andersen


Dato : 03-06-04 07:21

> Jeg har et mindre problem. Jeg har en html/php side hvor jeg indsætter en
> email (dvs. emailbody) hvorefter jeg så sender siden igennem php-parseren.
> Der er dog det problem, at hvis en mindre venlig bruger så indsætter noget
> php kode i email'en (f.eks. <? phpinfo(); ?> ) kan vedkommende udføre php
> kode.

Hvis teksten som skal være i emailbody er i en variable, kan det ikke blive
udført.
Er det ikke løsningen?

/Kim



Ivan J. Eis (03-06-2004)
Kommentar
Fra : Ivan J. Eis


Dato : 03-06-04 10:11

> > Jeg har et mindre problem. Jeg har en html/php side hvor jeg indsætter
en
> > email (dvs. emailbody) hvorefter jeg så sender siden igennem
php-parseren.
> > Der er dog det problem, at hvis en mindre venlig bruger så indsætter
noget
> > php kode i email'en (f.eks. <? phpinfo(); ?> ) kan vedkommende udføre
php
> > kode.
>
> Hvis teksten som skal være i emailbody er i en variable, kan det ikke
blive
> udført.
> Er det ikke løsningen?
>
> /Kim
>

Nej ikke helt. Forestil dig at et ekstern program henter mail'en og sender
så mailen igennem php-parseren, det er her det kan gå galt.

Ivan




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.693 / Virus Database: 454 - Release Date: 31-05-2004



Dennis Newel (03-06-2004)
Kommentar
Fra : Dennis Newel


Dato : 03-06-04 10:37

Ivan J. Eis wrote:
> Nej ikke helt. Forestil dig at et ekstern program henter mail'en og sender
> så mailen igennem php-parseren, det er her det kan gå galt.

og du kan ikke nøjes med bare at escape indholdet af mailen før du
sætter den ind? f.eks. html_specialshars($mailbody) eller
url_encode($mailbody)?

jeg gætter på dit "eksterne program" er et phpscript? hvis ikke, kan man
lave ovenståede på mange andre måder i f.eks. perl el. lign. :)

./Dennis

Kim Andersen (03-06-2004)
Kommentar
Fra : Kim Andersen


Dato : 03-06-04 10:41

> Nej ikke helt. Forestil dig at et ekstern program henter mail'en og sender
> så mailen igennem php-parseren, det er her det kan gå galt.

Hvad så med at fjerne PHP tags, altså "<?", "<?php" og evt "?>" inden den
kommer ind i PHP parseren.

/Kim



Ivan J. Eis (03-06-2004)
Kommentar
Fra : Ivan J. Eis


Dato : 03-06-04 13:49

> > Nej ikke helt. Forestil dig at et ekstern program henter mail'en og
sender
> > så mailen igennem php-parseren, det er her det kan gå galt.
>
> Hvad så med at fjerne PHP tags, altså "<?", "<?php" og evt "?>" inden den
> kommer ind i PHP parseren.
>
> /Kim
>

Ideen er god, men hvis du f.eks. har mails som er store (dvs. flere mb)
tager det en del cpu-tid, at sortere ovennævnte tags fra. Så ville det være
lettere hvis man kunne indsætte en <? DISABLE_PHP ?> . Men det ser ikke ud
til at eksistere, jeg har søgt nettet google med mere og ikke kunne finde
noget.

Jeg håber du forstår hvad jeg mener. Jeg har lavet en Win32 app. som henter
noget html/php og en email (som er gemt som text i en fil) og så sender det
videre til php-parseren. Og det er her det "kikser", hvis f.eks. en bruger
har noget php i mailen. Jeg havde håbet på at man kunne sende en <?
DISABLE_PHP ?> og så slå den til når mailen er ovre hvis du forstår.

Nogle steps hvordan min Win32 app virker.

fig. 1:

Min Win32 app. compiler en side.

<html>
....
<? echo "denne php-kode er ok"; ?>
...
<emailen "hentes fra en fil">
....
<? echo "denne php-kode er _ikke_ ok"; ?>
....
</emailen>
...
<? echo "denne php-kode er ok"; ?>
...
</html>


Ovenstående side (fig. 1) sendes til php parseren. Som du kan se ville det
være et problem hvis mailen indeholder php-kode. Derfor søger jeg efter den
magiske DISABLE_PHP tag, som nok ikke findes, så min side så ville se sådan
ud.


<html>
....
<? echo "denne php-kode er ok"; ?>
....
<? DISABLE_PHP ?>
<emailen "hentes fra en fil">
....
<? echo "denne php-kode bliver ikke udført da php er slået fra"; ?>
....
</emailen>
<? DISABLE_PHP?>
....
<? echo "denne php-kode er ok;" ?>
....
</html>

En evt. løsning ville være at sende siden til phpparseren uden email'en.


Mvh

Ivan




---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.693 / Virus Database: 454 - Release Date: 31-05-2004



Dennis Newel (03-06-2004)
Kommentar
Fra : Dennis Newel


Dato : 03-06-04 14:17

Ivan J. Eis wrote:
> Ideen er god, men hvis du f.eks. har mails som er store (dvs. flere mb)
> tager det en del cpu-tid, at sortere ovennævnte tags fra. Så ville det være

en måde du kunne gøre det på, er kun at kigge på selve mailen, og ikke
attachments. En mail er ikke stor, hvis du ser bor fra attachments, og
det er ikke så svært igen :) Hvis du kigger i en mails headers, vil du
nemt kunne se om den er multi-part-mime (eller hvad der nu står) og så
kan du nøjes med at tage text og/eller html delen af mailen, og lade
være med at "php-afkode" attachments.
Hver del af en multipart mail starter adskildes med en linie der starter
med -- (to streget) efterfulgt af det id der er specificeret i headeren.
hvis du klipper mailen rigtigt over, står du tilbage med det som du skal
checke. Attachments er som regel altid encoded på den ene eller den
anden måde (f.eks. base64) og behøver ikke at blive checket. Naturligvis
kan en ond cracker lave et attachment som omgår dette, men har du
virkelig lyst til at vise en base64 encoded attachment som tekst på en
webside? :) (læs som: klip attachment væk, og lad være med at vide den ;)

./Dennis

Michael Christensen (03-06-2004)
Kommentar
Fra : Michael Christensen


Dato : 03-06-04 13:37

> Derfor går mit spørgsmål på om der findes en kommande/tag som slå php
> parseren fra. Se nedestående.
>
> <HTML>
> ...
> ...
> <? PHP_OFF ?>
> Email her...
> ....
> <?PHP_ON?>

Heh - så kunne man jo bare sende en email der startede med <?PHP_ON?> - hvis
en sådanne kommando da ellers fandtes

En generelt dækkende løsning er vist at ændre "<" og ">" til henholdsvist
"&lt;" og "&gt;"... Som det også er foreslået i svaret fra Dennis Newel, så
findes der nogle funktioner til dette formål f.x.
html_specialshars($mailbody) og url_encode($mailbody).

mvh
Michael F. S. Christensen



Ivan J. Eis (03-06-2004)
Kommentar
Fra : Ivan J. Eis


Dato : 03-06-04 13:52


>
> Heh - så kunne man jo bare sende en email der startede med <?PHP_ON?> -
hvis
> en sådanne kommando da ellers fandtes
>
> En generelt dækkende løsning er vist at ændre "<" og ">" til henholdsvist
> "&lt;" og "&gt;"... Som det også er foreslået i svaret fra Dennis Newel,

> findes der nogle funktioner til dette formål f.x.
> html_specialshars($mailbody) og url_encode($mailbody).
>
> mvh
> Michael F. S. Christensen
>
>

Hehe.. ja, det har du ret i. Altså kan jeg godt opgive mine "drømme". Tak
for hjælpen til alle som har svaret!

Mvh

Ivan





---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.693 / Virus Database: 454 - Release Date: 31-05-2004



Johan Holst Nielsen (03-06-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 03-06-04 14:56

Ivan J. Eis wrote:
> Hej!
>
> Jeg har et mindre problem. Jeg har en html/php side hvor jeg indsætter en
> email (dvs. emailbody) hvorefter jeg så sender siden igennem php-parseren.
> Der er dog det problem, at hvis en mindre venlig bruger så indsætter noget
> php kode i email'en (f.eks. <? phpinfo(); ?> ) kan vedkommende udføre php
> kode.
>
> Derfor går mit spørgsmål på om der findes en kommande/tag som slå php
> parseren fra. Se nedestående.
>
> <HTML>
> ...
> ...
> <? PHP_OFF ?>
> Email her...
> ....
> <?PHP_ON?>
>

Måske bare

<?php
$emailContent =
str_replace(array('<?php','<?','<?=','?>'),'',$emailContent);
?>

mvh
Johan


Peter Brodersen (03-06-2004)
Kommentar
Fra : Peter Brodersen


Dato : 03-06-04 15:53

On Thu, 03 Jun 2004 15:55:47 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:

><?php
>$emailContent =
>str_replace(array('<?php','<?','<?=','?>'),'',$emailContent);
>?>

http://stock.ter.dk/scriptphp

:)

--
- Peter Brodersen

Ugens sprogtip: at tjekke (og ikke at checke)

Johan Holst Nielsen (03-06-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 03-06-04 21:42

Peter Brodersen wrote:
> On Thu, 03 Jun 2004 15:55:47 +0200, Johan Holst Nielsen
> <johan@weknowthewayout.com> wrote:
>
>
>><?php
>>$emailContent =
>>str_replace(array('<?php','<?','<?=','?>'),'',$emailContent);
>>?>
>
>
> http://stock.ter.dk/scriptphp
>

jeg ville formentlig stadig lave en strip_tags på den - men det er alm.
validering - og derunder ville "script" selvfølgelig være inkluderet ;)
Javascript kan jo også være farlige - eller i hvert fald meget irriterende.

mvh
Johan

Peter Brodersen (03-06-2004)
Kommentar
Fra : Peter Brodersen


Dato : 03-06-04 23:30

On Thu, 03 Jun 2004 22:42:10 +0200, Johan Holst Nielsen
<__spam__@phpgeek.dk> wrote:

>jeg ville formentlig stadig lave en strip_tags på den - men det er alm.
>validering - og derunder ville "script" selvfølgelig være inkluderet ;)
>Javascript kan jo også være farlige - eller i hvert fald meget irriterende.

Hep, jeg ville også kører htmlspecialchars() eller strip_tags().
Eksemplet var mest for at illustrere at specifikke, problematiske
tilfælde sjældent er udtømmende, så man hellere bør holde sig til mere
generiske løsninger.

--
- Peter Brodersen

Ugens sprogtip: at tjekke (og ikke at checke)

Johan Holst Nielsen (04-06-2004)
Kommentar
Fra : Johan Holst Nielsen


Dato : 04-06-04 10:47

Peter Brodersen wrote:
> On Thu, 03 Jun 2004 22:42:10 +0200, Johan Holst Nielsen
> <__spam__@phpgeek.dk> wrote:
>
>
>>jeg ville formentlig stadig lave en strip_tags på den - men det er alm.
>>validering - og derunder ville "script" selvfølgelig være inkluderet ;)
>>Javascript kan jo også være farlige - eller i hvert fald meget irriterende.
>
>
> Hep, jeg ville også kører htmlspecialchars() eller strip_tags().
> Eksemplet var mest for at illustrere at specifikke, problematiske
> tilfælde sjældent er udtømmende, så man hellere bør holde sig til mere
> generiske løsninger.

Enig - men har stadig lidt svært ved at se hvor det går galt i den
specifikke situation...


$emailContent = "<?php phpinfo(); ?> en masse andet fyld..";
echo $emailContent;


Det vil jo ikke give en output af phpinfo - med mindre man begynder at
smide den igennem evals eller lign.. :) Og laver en masse komplikeret...

Men kan godt være jeg har overset en detalje? :)

mvh
Johan


Søg
Reklame
Statistik
Spørgsmål : 177518
Tips : 31968
Nyheder : 719565
Indlæg : 6408646
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste