Opassen met PHP snippets in nodes

php-snippet-for-developers.jpg

Op fora worden nog wel eens PHP codes uitgewisseld om bijvoorbeeld een, actuele tijd in een block te plaatsen of een block of view in een node weer te geven. De Drupal Core ondersteunt deze PHP snippets wanneer de PHP filter module is geactiveerd en voor het gebruikte "text format" PHP is geactiveerd.

Hoewel soms makkelijk, weet niet iedereen dat code die via een tekstveld wordt ingevoerd, en dus uit de database moet worden gelezen, een stuk langzamer is dan code die wordt geladen vanuit een extern bestand, oftewel via een module. Komt bij het veiligheidsrisico dat je neemt door PHP voor sommige gebruikers toe te staan.

In dit artikel legt Garret Albright van Ping precies hoe filters werken en wat de risico's zijn.

De alternatieven zijn zelf een module schrijven of een contributed module gebruiken zoals Token Filter, waarmee je tokens in nodes kunt gebruiken voor bijvoorbeeeld het weergeven van een actuele datum, of wat dan ook. Voor het plaatsen van een View of block in een node kun je een beroep doen op Viewfield en Insert Block.