Tekst filter

Door Niels K, 17 jaar geleden, 8.234x bekeken

Een filter voor het veilig plaatsen van ingevoerde content.


Voorbeelden:

- Filteren van 1 string

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$text
= 'Hier wat tekst';
print_r(Gestione_Escape::parse($text, '<b><i>'));
?>

De tags <b> en <i> zijn dus toegestaan.

- Filteren van bijvoorbeeld een post array

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
print_r(Gestione_Escape::parseFromArray($_POST, '<b><i>');
?>


Hij wijst zich allemaal vanzelf. Graag opbouwend kritiek.

Ik hoop dat mensen er wat aan hebben.

Gr,

Niels K.

Gesponsorde koppelingen

PHP script bestanden

  1. Escape.php

 

Er zijn 8 reacties op 'Tekst filter'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Jasper DS
Jasper DS
17 jaar geleden
 
0 +1 -0 -1
Proper, kan handig zijn. Netjes gemaakt, zo zijn we het gewoon van jouw he.
Jelmer -
Jelmer -
17 jaar geleden
 
0 +1 -0 -1
In parse() gebruik je $this, maar dat 'kan niet' vanuit een static functie.
Niels K
Niels K
17 jaar geleden
 
0 +1 -0 -1
Ik krijg geen foutmelding?
Jelmer -
Jelmer -
17 jaar geleden
 
1 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Using $this when not in object context in untitled_26c..php on line 35

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$text
= 'Hier wat tekst';
print_r(Gestione_Escape::parse($text, array('<b>','<i>')));
?>


Best logisch, want naar welke instantie verwijst $this? Je bedoelt waarschijnlijk self::.

Hij gaat trouwens rare html maken wanneer je er bijv. Hier wat <i>tekst</e> in stopt.
Niels K
Niels K
17 jaar geleden
 
0 +1 -0 -1
@Jelmer..

Je hebt gelijk.. Aangepast.
Ok daar zou ik den even naar moeten kijken :)

Tnx!
Pim -
Pim -
17 jaar geleden
 
0 +1 -0 -1
Veilig? Je bedoelt veilig in html neem ik aan.

Maar helaas Niels, het mag opnieuw ;)...
Voor dit soort checks moet je eerst de domnode opbouwen en dan pas checken. Zo zorgt de slordigheid van je browser ervoor dat kwaadaardige code erdoorheen kan glippen.

Ook moet je oppassen voor JS in attributen.

En waarom check je de types zo vaak? Typehinting en doctypes zijn toch genoeg?
Niels K
Niels K
17 jaar geleden
 
0 +1 -0 -1
@Pim
Wat bedoel je met 'eerst domnode' opbouwen ?

JS in attributen worden gefilterd he ;) Test maar ;)

Ja, maar ik neem eigenlijk altijd het zekere voor het onzekere.
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Pim -
Pim -
17 jaar geleden
 
0 +1 -0 -1
Dat je eerst de HTML omzet in correcte (X)HTML dmv in een SimpleXML achtige vorm, waarna je je checks doet en correcte HTML teruggeeft.

Bijvoorbeeld:
Quote:

Malformed IMG tags. Originally found by Begeek (but cleaned up and shortened to work in all browsers), this XSS vector uses the relaxed rendering engine to create our XSS vector within an IMG tag that should be encapsulated within quotes. I assume this was originally meant to correct sloppy coding. This would make it significantly more difficult to correctly parse apart an HTML tag:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<IMG '''><SCRIPT>alert('XSS')</SCRIPT>'>

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. Escape.php

Labels

Navigatie

 
 

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.