Na jaren lang webapplicaties te hebben geschreven en altijd netjes alle input van de gebruikers ($_GET, $_POST, $_COOKIE) strip (regexp) naar alleen alphanumeric tekens of alles escape met funties als "mysql_real_escape_string()" / "htmlspecialchars()" vraag ik me af hoe jullie dit doen?
Zo kan ik me voorstellen dat er een aantal tweakers mooie standaard scripts hebben gemaakt die praktisch boven elke php-code geplaatst kan worden en meteen een stukje veiliger is.
Daarnaast heb ik een brainstormpje; "naast de input validation, wil je misschien ook monitoren en eventueel (automatisch) acties daar aan vast laten koppelen"
Situatie-schets: Je hebt een website met een contact-/registratie-formulier ($_POST) en een enkele index.php die aan de $_GET['p']-value kan zien welke pagina geladen moet worden vanuit de database.
Hierbij zou men kwetsbaar zijn voor de POST en GET input van de gebruiker. Deze input wordt natuurlijk netjes gestript tot het hoog nodige en zou daarmee veilig moeten zijn tegen SQL-injections en Cross Site scriptings.
Maar nu het idee: Vlak voordat de values gestript worden zou je kunnen detecteren of het hier om een aanval gaat, door te kijken wat voor input er binnen komt. Zodra men bijvoorbeeld drie keer iets probeert wat lijkt op een aanval kun je het script met "die('banned');" voortijdig laten stoppen of zelfs in iptables/.htaccess volledig blokkeren. Daarnaast weet je zelf ook wanneer je onder vuur ligt.
Nu kun je natuurlijk gewoon kijken of er "verboden woorden" in de input voorkomt zoals: 'LIMIT','UNION','SELECT','NULL','BOOLEAN','MODE','WHERE','TRUNCATE'
Maar wat nou als je een user hebt met als naam "selectvracht", "modewinkel", "limiteddeals", etc.
Hebben jullie hier wel eens over nagedacht/gebrainstormed? Gebruiken jullie al iets soort gelijks? Leuke ideeën om dit op een goede manier te detecteren?
Zo kan ik me voorstellen dat er een aantal tweakers mooie standaard scripts hebben gemaakt die praktisch boven elke php-code geplaatst kan worden en meteen een stukje veiliger is.
Daarnaast heb ik een brainstormpje; "naast de input validation, wil je misschien ook monitoren en eventueel (automatisch) acties daar aan vast laten koppelen"
Situatie-schets: Je hebt een website met een contact-/registratie-formulier ($_POST) en een enkele index.php die aan de $_GET['p']-value kan zien welke pagina geladen moet worden vanuit de database.
Hierbij zou men kwetsbaar zijn voor de POST en GET input van de gebruiker. Deze input wordt natuurlijk netjes gestript tot het hoog nodige en zou daarmee veilig moeten zijn tegen SQL-injections en Cross Site scriptings.
Maar nu het idee: Vlak voordat de values gestript worden zou je kunnen detecteren of het hier om een aanval gaat, door te kijken wat voor input er binnen komt. Zodra men bijvoorbeeld drie keer iets probeert wat lijkt op een aanval kun je het script met "die('banned');" voortijdig laten stoppen of zelfs in iptables/.htaccess volledig blokkeren. Daarnaast weet je zelf ook wanneer je onder vuur ligt.
Nu kun je natuurlijk gewoon kijken of er "verboden woorden" in de input voorkomt zoals: 'LIMIT','UNION','SELECT','NULL','BOOLEAN','MODE','WHERE','TRUNCATE'
Maar wat nou als je een user hebt met als naam "selectvracht", "modewinkel", "limiteddeals", etc.
Hebben jullie hier wel eens over nagedacht/gebrainstormed? Gebruiken jullie al iets soort gelijks? Leuke ideeën om dit op een goede manier te detecteren?