Ik ben bezig mijn ASP webapplicatie goed te beveiligen. Natuurlijk heb ik P&W FAQ - Hoe beveilig ik een website? al doorgelezen en het stuk over SQL Injection attacks, dit is nu zo goed als gefixed en ben ik nog bezig om door te lopen:
Waar ik nu niet uitkom is dat als iemand bijv dit doet: (dus de URL zou aanpassen met een scriptcode erin) -->
Mijn pagina geeft nu een Javascript foutmelding als ik deze URL inplak om naar de volgende pagina te gaan, met deze functie vang ik een aantal dingen op die mis zouden kunnen gaan:
Als ik nu de laatste querystring, waar dus een <script> tagblok sta door deze functie heenhaal krijg ik dit in de HTML code -->
Echter krijg ik op deze regel een Javascript foutmelding:
Expected ';'
Weet iemand waarom?
Welke karakters zou ik nog meer moeten replacen in de functie FixHTML om dit soort dingen allemaal op te vangen zodra deze geschreven worden op de pagina?
Of is er een betere manier om dit goed en 100% op te vangen?
Waar ik nu niet uitkom is dat als iemand bijv dit doet: (dus de URL zou aanpassen met een scriptcode erin) -->
HTML:
1
| http://mijndomein.nl/klanten.asp?locatie=klanten&page=1&zoekenin=&zoekennaar=&sort=<script>alert('test');</script> |
Mijn pagina geeft nu een Javascript foutmelding als ik deze URL inplak om naar de volgende pagina te gaan, met deze functie vang ik een aantal dingen op die mis zouden kunnen gaan:
HTML:
1
2
3
4
5
| Function FixHTML(Variable)
FixHTML = Server.HTMLEncode(Variable)
FixHTML = Replace(FixHTML,Chr(34),""")
FixHTML = Replace(FixHTML,"'","'")
End Function |
Als ik nu de laatste querystring, waar dus een <script> tagblok sta door deze functie heenhaal krijg ik dit in de HTML code -->
HTML:
1
| onclick="document.location.href='?locatie=klanten&page=2&zoekenin=&zoekennaar=&sort=<script>alert('test');</script>';" |
Echter krijg ik op deze regel een Javascript foutmelding:
Expected ';'
Weet iemand waarom?
Welke karakters zou ik nog meer moeten replacen in de functie FixHTML om dit soort dingen allemaal op te vangen zodra deze geschreven worden op de pagina?
Of is er een betere manier om dit goed en 100% op te vangen?