characters zoals " niet als code gezien laten worden door PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Stefan van Teijlingen

Stefan van Teijlingen

16/06/2015 19:48:44
Quote Anchor link
Ik ben een speciale filter code aan het maken voor unwanted characters alleen zitten daar ook dit soort characters tussen: " en '. Nu was mijn vraag, weet iemand hoe ik PHP kan laten zien dat die niet bij de code horen maar als normale tekst gezien moeten worden? En werkt het ook in een string?
 
PHP hulp

PHP hulp

17/11/2024 00:26:50
 
Marthijn Buijs

Marthijn Buijs

16/06/2015 19:51:37
Quote Anchor link
Je kan er een backslash voorzetten zoals \" of \'

Of op deze manieer bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$bar = <<<EOT
bar
    EOT;

Dit is de zogenaamde 'heredoc' syntax
Gewijzigd op 16/06/2015 19:52:53 door Marthijn Buijs
 
Thomas van den Heuvel

Thomas van den Heuvel

16/06/2015 19:53:24
Quote Anchor link
Dat klinkt als een blacklist.

Blacklists als deze zijn niet echt gewenst omdat als je karakters mist, je beveiliging een lek heeft.

Bedien je van de regel filter input, escape output.

Voor het escapen van output (het onschadelijk maken van tekst in de HTML context) kun je htmlspecialchars() gebruiken.

Omdat dit een onderwerp is wat in de categorie "security" valt raad ik je dringend aan om jezelf goed te verdiepen in deze materie.

EDIT: Ik snap ook niet helemaal waar je naartoe wilt? Alles wat niet in PHP-blokken staat is geen PHP, tenzij je met lijpe functies als eval() bezig bent ofzo. Wat probeer je te bereiken? Als je je zorgen maakt dat iemand mogelijk arbitraire PHP-code kan uitvoeren dan heb je hele andere security-problemen lijkt mij :].
Gewijzigd op 16/06/2015 20:06:56 door Thomas van den Heuvel
 
Stefan van Teijlingen

Stefan van Teijlingen

17/06/2015 17:33:00
Quote Anchor link
Bedankt voor de tip, hij werkt nu, en Thomans van den Heuvel, het is niet iets met beveiliging, het was unwanted characters uit een linkje halen.

$unwantedCharacters = array("!",
"@",
"#",
"$",
"¤",
"%",
"€",
"^",
"&",
"*",
"(",
")",
"=",
"+",
"[",
"]",
"{",
"}",
"\\",
"|",
":",
"\;",
"\"",
">",
">",
",",
".",
"?",
"/",
"`",
"~",
"'"
);

$string = str_replace($unwantedCharacters,"",$string);
 
Ivo P

Ivo P

17/06/2015 18:08:22
Quote Anchor link
een aantal van die karakters kunnen anders best in een link thuishoren:

de ? en de & voor de GET parameters
een / staat ook 99 van de 100 links net al een .

ook een @ kan in een link voorkomen net als de :


http://username:[email protected]/~usersdir/index.php?id=12&cat=3 lijkt me een prima link.

en anders heeft php nog leuke filter-functies

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $link = filter_input(INPUT_POST, 'formelement', FILTER_SANITIZE_URL); ?>


Toevoeging op 17/06/2015 18:09:38:

dat rare icoontje in de link komt waarschijnlijk voort uit een bug hier op phphulp.

na username komt in de link de :
 
Thomas van den Heuvel

Thomas van den Heuvel

17/06/2015 20:28:51
Quote Anchor link
Of gewoon urlencode() ?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.