set error handler verstuurt te veel informatie
In de email worden alle variabelen, met hun waardes op moment van error, gezet. Dat is mooi maar ook de wachtwoorden en inlog van je formulier EN de inlog van de Database. Wat kan je doen om deze gevoelige informatie niet mee te nemen in de error afhandeling?
Alvast bedankt,
Wim
Die variabelen unset()'en?
Dus eigenlijk aan het begin van de function alle 'gevoelige' variabelen unsetten. Is dat het plan? Anders begrijp ik het niet goed.
Dat klopt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
function mijn_errors($e_nummer, $e_melding, $e_bestand, $e_regel, $e_vars)
{
//hier komt dan die "unset" Maar de gewraakte variabelen komen volgens mij mee in //$e_vars. Ik behandel deze $e_vars dan als een array?
//Dus dan wordt het als voorbeeld:
unset ($e_vars['gebruiker']; $e_vars['wachtwoord']); // Ja? Nee?
// of als de inlog in een array staat
unset ($e_vars[$a_inlogdata]) // $a_inlogdata, niet tussen quotes?
}
function mijn_errors($e_nummer, $e_melding, $e_bestand, $e_regel, $e_vars)
{
//hier komt dan die "unset" Maar de gewraakte variabelen komen volgens mij mee in //$e_vars. Ik behandel deze $e_vars dan als een array?
//Dus dan wordt het als voorbeeld:
unset ($e_vars['gebruiker']; $e_vars['wachtwoord']); // Ja? Nee?
// of als de inlog in een array staat
unset ($e_vars[$a_inlogdata]) // $a_inlogdata, niet tussen quotes?
}
Daarnaast lost dit het achterliggende probleem niet op. Blijkbaar komt er (verkeerde?) informatie bij de verkeerde persoon/personen terecht. Je zult je ontwerpstrategie zo moeten aanpassen dat uitvoer van enige foutafhandeling niet bij (willekeurige) eindegebruikers terechtkomt.
Andere oplossingen, zoals het geval-per-geval afvangen van dit soort informatie, lijken mij toch doekjes voor het bloeden.
Als je de variabelen declareert... dan zie je wel eens dat ze tussen " " aanhalingstekens staan heeft dat ook effect op mijn probleem?
Ik ga nu dit eens uitproberen maar toch graag je mening
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
//zonder variabelen te declareren dan moeten ze ook niet in het rapport komen?
$db_connectie =
mysqli_connect ("host", "user", "pass", "db")
or
die("Onze verontschuldigingen, de Kaartenbak is niet online.");
?>
//zonder variabelen te declareren dan moeten ze ook niet in het rapport komen?
$db_connectie =
mysqli_connect ("host", "user", "pass", "db")
or
die("Onze verontschuldigingen, de Kaartenbak is niet online.");
?>
Zou dit een oplossing kunnen zijn?
In een custom error handler is de 5e parameter $errcontext, die met alle variabelen, helemaal niet vereist. Je kunt die er dus ergens uithalen. Dan houd je meestal al voldoende informatie over om de fout te verhelpen (zoals foutcode, foutmelding en het bestand waarin de fout optrad).
Fouten e-mailen is meer in het algemeen geen goed plan. Daar kom je van terug bij de eerste DDoS-aanval...
Groet,
Wim