Coldfusion do’s and dont’s 3: veilig plaatsen content

Geschreven door: op zondag 31 juli 2016

Leestijd:

In voorgaande blogs werd uitleg gegeven over bepaalde manieren om content te tonen op een website en werden tips gegeven over het veilig gebruiken van databases. In dit artikel staan enkele tips om veilig content te plaatsen en te gebruiken op je website.

HtmlEditFormat

Als je gebruikmaakt van content die niet vanuit de website zelf komt, zoals reviews van consumenten of data uit webservices, dan is er het risico dat hierin bepaalde informatie zit die er niet in hoort te zitten, zoals code die popups in de browser opent of andere aanpassingen doet aan het uiterlijk van de website.

Met de functie HtmlEditFormat zorg je ervoor dat alle content die geplaatst wordt, wordt getoond als tekst en dat HTML-codes niet als code worden behandeld.

Automatische bots willen bijvoorbeeld wel eens Javascript plaatsen in reactieformulieren. Als je in HTML deze code onveranderd plaatst, krijg je bijvoorbeeld:

ColdFusion:


<p class="reaction">

                <cfoutput>#reaction#</cfoutput>

</p>

----

HTML:


<p class="reaction">
        <script>

             alert('Een waarschuwing die niet van de site komt.');

        </script>
</p>

Elke bezoeker op je website krijgt nu een waarschuwing te zien. Als je de content in HtmlEditFormat plaatst, worden de speciale karakters ge-escaped:

ColdFusion:


<p class="reaction">

                <cfoutput>#HtmlEditFormat(reaction)#</cfoutput>

</p>

----

HTML:


<p class="reaction">

                &lt;script&gt;

                               alert('Een waarschuwing die niet van de site komt.');

                &lt;/script&gt;

&lt;/p&gt;

Op deze manier kan er geen schadelijke code door derden op je website worden geplaatst.

MimeType bij FileUpload

Je kan bezoekers en andere gebruikers de mogelijkheid geven bestanden te uploaden naar de server. Dit is vrij gebruikelijk als je afbeeldingen wilt uploaden in een CMS, bijvoorbeeld. Om ervoor te zorgen dat je alleen een bepaald type bestand accepteert, kan je een extra argument opgeven bij CFFILE.

CFFILE wordt onder andere gebruikt om bestanden te uploaden. Geef je als argument accept mee en vul je als waarde in een mime-type, dan worden alleen bestanden toegestaan die deze mime-type hebben.

Let op: browsers zelf geven aan wat de mime-type is, dus dit is geen waterdicht systeem.

In CFSCRIPT gebruik je het argument accept bij de functie FileUpload.

Validatie parameters via CFPARAM

Als je parameters direct doorgeeft aan pagina’s, bijvoorbeeld het ophalen van gegevens op basis van een identifier, kan je ervoor zorgen dat er een basale validatie is doormiddel van de tag CFPARAM. Deze tag vraagt in ieder geval een naam, maar via het attribuut type kan je opgeven wat voor type parameter verwacht wordt.

Bijvoorbeeld:


<cfparam name=”URL.Id” type=”numeric” />

Bovenstaande staat alleen een numerieke waarde toe en geeft een foutmelding als het iets anders is. Met deze tag kan je ook defaultwaardes opgeven:


<cfparam name=”URL.Id” type=”numeric” default=”0” />

CFPARAM is vergelijkbaar met CFARGUMENT, met een van de verschillen dat CFPARAM niet in functies wordt gebruikt, maar in .cfm-templates. In CFSCRIPT maak je gebruik van deze functie via het keyword param:


Andere blogartikelen

  • Performance website hoog houden met behulp van SOLR

    Geschreven door: op maandag 3 december 2018

     Websites van onze klanten bevatten soms tienduizenden pagina’s. Dit zijn pagina’s die betrekking op de diensten die zij leveren en waar zij deze diensten leveren. Deze pagina’s worden gevuld me ...

    Bekijk het artikel »
  • HTML tips voor mail templates

    Geschreven door: op zaterdag 10 november 2018

    Bij het bouwen van een e-mail template binnen HTML komen er veel dingen kijken, ik leg in deze post een aantal basiselementen uit hoe je om moet gaan met de HTML van een mail template, en hoe wij daar ...

    Bekijk het artikel »
  • Documenteer je code

    Geschreven door: op zaterdag 27 oktober 2018

    Documenteren van je code is uiteraard een best practice. De code op zich mag zo beschrijvend mogelijk zijn, zodat de documentatie impliciet is, maar bijvoorbeeld een uitleg over het waarom van een bep ...

    Bekijk het artikel »
Bel 072 5345 888
Meer dan 40 bedrijven vertrouwen op ons
Allrig is de alles in een leverancier binnen de energie-industrie
Aliancys is een toonaangevend wereldwijd bedrijf actief in de verkoop van kwaliteitsharsen
ERIKS is een toonaangevende en innovatieve leverancier aan de procesindustrie en aan machinebouwers, die zowel de rol van specialist als die van brede MRO-leverancier vervult
Industrieel dienstverlener Heinen & Hopman Engineering uit Bunschoten is dé wereldwijde specialist op het gebied van klimaatbeheersing
Handicare is een internationale organisatie die ouderen helpt om hun dagelijks leven gemakkelijker te maken door het produceren van hoogwaardige trapliften
Onze Middelen en Technologieën
microsoft silver partner
Adobe partner
fd-gazellen-2018.jpg
Google analytics
partners-logo.jpg