characters zoals " niet als code gezien laten worden door PHP
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?
Of op deze manieer bijvoorbeeld:
Dit is de zogenaamde 'heredoc' syntax
Gewijzigd op 16/06/2015 19:52:53 door Marthijn Buijs
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
$unwantedCharacters = array("!",
"@",
"#",
"$",
"¤",
"%",
"€",
"^",
"&",
"*",
"(",
")",
"=",
"+",
"[",
"]",
"{",
"}",
"\\",
"|",
":",
"\;",
"\"",
">",
">",
",",
".",
"?",
"/",
"`",
"~",
"'"
);
$string = str_replace($unwantedCharacters,"",$string);
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
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 :
Of gewoon urlencode() ?