login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Anti-xss ok?

Offline Romic - 14/01/2009 20:17 (laatste wijziging 14/01/2009 20:21)
Avatar van RomicNieuw lid Op mijn website in aanbouw heb ik in php deze functie gemaakt:
  1. function secure($data,$limit=50){
  2. $data=str_replace("javascript:","",$data);
  3. $data=substr($data,0,$limit);
  4. return htmlentities($data,ENT_QUOTES,"UTF-8");
  5. }


Alle userinput (forms, cookies, $_SERVER variabelen) wordt hiermee gecontroleerd.

Is dit een goede beveiliging?

6 antwoorden

Gesponsorde links
Offline Wim - 14/01/2009 21:01
Avatar van Wim Crew algemeen Volgens jij kan je beter een validatie PER veld doen..

Verder begrijp ik je gebruik van substr niet goed, is PHP.net: strlen niet interessanter in dit geval? Anders worden er nog steeds 50 tekens doorgelaten...
Offline Romic - 15/01/2009 07:45 (laatste wijziging 15/01/2009 07:47)
Avatar van Romic Nieuw lid
  1. $data=substr($data,0,$limit);

Zorgt er voor dat er maximum $limit (standaard 50) tekens overgehouden wordt.

Strlen geeft gewoon de lengte van de string, en die moet ik niet hebben

En bij veld per veld, vergeet je al snel iets (de limit voor een gebruikersnaam,...)+dit is korter om te gebruiken.
Gewoon $username=secure($username);
Offline Threetimes - 15/01/2009 07:46
Avatar van Threetimes PHP beginner
  1. if (strlen($data)>50)
  2. {
  3. // geef foutmelding
  4. }
Lijkt me een nettere oplossing
Offline Wim - 15/01/2009 12:21 (laatste wijziging 15/01/2009 12:23)
Avatar van Wim Crew algemeen
Romic schreef:
[..code..]
Zorgt er voor dat er maximum $limit (standaard 50) tekens overgehouden wordt.

Strlen geeft gewoon de lengte van de string, en die moet ik niet hebben

Als het groter is dan 50 tekens, en volgens jou dus een illegale string kan je beter ALLES blokkeren dan slechts een deel. Zo kan je ook een mooie foutmelding aan je gebruiker geven ipv enkel de 50 eerste tekens te gebruiken

Romic schreef:
En bij veld per veld, vergeet je al snel iets (de limit voor een gebruikersnaam,...)+dit is korter om te gebruiken.
Gewoon $username=secure($username);

Maar wel minder veilig.... Je vraagt tips, krijgt deze, en dan ga je de "gemakkelijkheid" als troef spelen...?

Trouwens, als je het op alle POST data etc gaat toepassen, is PHP.net: array_map makkelijker!
Offline Romic - 15/01/2009 16:45
Avatar van Romic Nieuw lid Het is niet de bedoeling om alles te blokkeren wat groter is dan 50 tekens. Dit wordt normaal al verhinderd door het html form, maar om dat serverside te verzekeren heb ik dat erbij gedaan.

Die array map ziet er een handige functie uit, had ik nog niet van gehoord.
Offline Koen - 15/01/2009 16:53
Avatar van Koen PHP expert http://doxygen....ource.html

Met deze functie kan je met een gerust hart stellen dat XSS bijna onmogelijk geworden is 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.205s