Welke maatregelen nemen jullie, zouden jullie willen nemen als er genoeg tijd was om een webapplicatie veilig te bouwen. Het topic staat ook bij beveiliging maar ik wil even kijken of ik hier meer response krijg
Structuur
site\index.php
modules
Je included alles vanuit de map modules maar geeft de webgebruiker hierop geen rechten. Enkel op index.php Zo geef je niks over je structuur prijs en kan je je rechten vanuit je index pagina regelen.
Invoervalidatie
Alle informatie wordt met htmspecialchars() en addslashes() behandt. Mocht de informatie door moeten naar de database dan gebruik ik nog extra: mysql_real_escape_string()
Outputvalidatie
Alles wat naar de site wordt geschreven wordt zowiezo met htmlspecialchars behandled
Rechten
De webserver draait onder een appart hiervoor gemaakt account
Database
Er worden apparte accounts aangemaakt om te lezen en te updaten,schrijven. Daarnaast wordt er een account voorkant aangemaakt. Deze mag enkele Stored procedure's aanroepen maar heeft verder geen rechten.
Error handling
Standaard geef ik zo min mogelijk informatie prijs. Alle 400, 401,402,403,404,405 worden naar de homepage doorgestuurd. Daarnaast staat error_reporting altijd op 0. Behalve op test servers.
Hashing
Het lieft gebruik ik geen Md5 of sha1 maar RIPEMD-320 omdat de scriptkiddie dit algoritme hopelijk niet herkent en er nog niet zoveel crackers voor zijn. Daarnaast Salt ik wachtwoorden dus hash(wachtwoord + salt) = (dit wordt opgeslagen in de database).
SSL
Dit gebruik ik zelfden (eigenlijk te weinig). Voornamelijk omdat klanten het teveel sores vinden om de certificaten aan te vragen.
Sessions
Om sessi hijacking te voorkomen geef ik ze niet mee aan de url parameters. Tenzij dit onvermijdelijk is. Daarnaast koppel ik een sessie aan
- Het ipadres (dus mocht de sessie gekaapt worden kan deze niet zonder spoofing worden overgenomen)
- Een timestamp (zodat deze sneller verloopt als er niks mee gebeurt).
Hebben jullie nog aanvullingen om (web)applicatie beveiliging verder uit te breiden?
Ook de paranoid opties zijn welkom en interessant
Structuur
site\index.php
modules
Je included alles vanuit de map modules maar geeft de webgebruiker hierop geen rechten. Enkel op index.php Zo geef je niks over je structuur prijs en kan je je rechten vanuit je index pagina regelen.
Invoervalidatie
Alle informatie wordt met htmspecialchars() en addslashes() behandt. Mocht de informatie door moeten naar de database dan gebruik ik nog extra: mysql_real_escape_string()
Outputvalidatie
Alles wat naar de site wordt geschreven wordt zowiezo met htmlspecialchars behandled
Rechten
De webserver draait onder een appart hiervoor gemaakt account
Database
Er worden apparte accounts aangemaakt om te lezen en te updaten,schrijven. Daarnaast wordt er een account voorkant aangemaakt. Deze mag enkele Stored procedure's aanroepen maar heeft verder geen rechten.
Error handling
Standaard geef ik zo min mogelijk informatie prijs. Alle 400, 401,402,403,404,405 worden naar de homepage doorgestuurd. Daarnaast staat error_reporting altijd op 0. Behalve op test servers.
Hashing
Het lieft gebruik ik geen Md5 of sha1 maar RIPEMD-320 omdat de scriptkiddie dit algoritme hopelijk niet herkent en er nog niet zoveel crackers voor zijn. Daarnaast Salt ik wachtwoorden dus hash(wachtwoord + salt) = (dit wordt opgeslagen in de database).
SSL
Dit gebruik ik zelfden (eigenlijk te weinig). Voornamelijk omdat klanten het teveel sores vinden om de certificaten aan te vragen.
Sessions
Om sessi hijacking te voorkomen geef ik ze niet mee aan de url parameters. Tenzij dit onvermijdelijk is. Daarnaast koppel ik een sessie aan
- Het ipadres (dus mocht de sessie gekaapt worden kan deze niet zonder spoofing worden overgenomen)
- Een timestamp (zodat deze sneller verloopt als er niks mee gebeurt).
Hebben jullie nog aanvullingen om (web)applicatie beveiliging verder uit te breiden?
Ook de paranoid opties zijn welkom en interessant