Wat betekent deze melding? "(proxy) all backends are down"
Could not connect: localhost : databaseuser : databasename : databasepassword (proxy) all backends are down
Gewijzigd op 03/09/2015 01:36:34 door Johan de wit
De waardes kan je gewoon uit de foutmelding halen? Deze waardes horen zeker niet in een foutmelding thuis!
Mocht je er niet uitkomen, laat dan de relevante code zien.
Gewijzigd op 03/09/2015 08:43:21 door - Ariën -
Welke stuk code wil je precies zien?
Kan vaker voorkomen, getuige https://www.secure.versio.nl/523-websites-werken-niet-meer.
En ik wil er aan toevoegen dat die foutmelding een enorme bad practice is van de software. Waarom worden die waarden op het scherm gedumpt ipv. een logbestand? Security fail.
Wachtwoorden horen imo ook niet in een logbestand thuis.
Anderzijds, waar laat je het wachtwoord van je script dat wil verbinden naar de database server? Ik kan even niets anders verzinnen dan dat het wachtwoord door het script te benaderen moet zijn, een config bestand? Dan is het verder niet zo'n probleem om buiten de docroot een paar diagnostische logfiles te schrijven. Bestandsrechten moeten de facto toch al secure worden ingeregeld, ook al gebeurt dat niet altijd.
Wat security audit zou verbeteren is dat de rollen van afgifte en gebruik worden opgesplitst naar verschillende mensen, en technisch afgeschermd. Maar, met het oog op BoKS en FoxT ServerControl, waar vind je een (theoretische) implementatie van dit principe in PHP?
Gewijzigd op 04/09/2015 16:01:58 door johan de wit
De reden dat je de waardes ziet moet je op de plek zoeken waar deze worden weergegeven.
Dat zie je op index pagina staan.
Dan moet je die foutmelding even aanpassen, zodat je bijv. alleen in ontwikkelmodus deze waardes ziet. het wachtwoord zou ik echt NOOIT tonen.
Dan moet ik even goed doorlopen. Hoe kan zo`n melding code uitzien?
Het is gewoon een kwestie van je script doorlopen en even zoeken. Mogelijk in één van je foutafhandelingen of functies.
Gewijzigd op 04/09/2015 16:48:18 door - Ariën -
mysql_connect($localhost,$databaseuser,$password) or die("Could not connect: ".$localhost." : ".$databasename." : ".$databaseuser." : ".$databasepassword. mysql_error()
print_r($arry);
Gewijzigd op 04/09/2015 16:55:20 door johan de wit
"Er is een fout opgetreden"
Waarbij je in je ontwikkelomgeving de volledige error toont. Dit kan prima met een 'constante' bijvoorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
# sql debug
define('DEBUG_MODE',true); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Er is een fout opgetreden')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// je query:
if (($result = mysql_query($sql)) === false)
{
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
?>
# sql debug
define('DEBUG_MODE',true); // true == aan, false == uit
# functie voor sql debug
function showSQLError($sql,$error,$text='Er is een fout opgetreden')
{
if (DEBUG_MODE)
{
return '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
}
else
{
return $text;
}
}
// je query:
if (($result = mysql_query($sql)) === false)
{
echo showSQLError($sql,mysql_error(),'Fout met database.');
}
?>
Gewijzigd op 04/09/2015 17:04:18 door - Ariën -
mysql_error() heb ik verwijderd nu zie je een blanco pagina.
Toon dan liever een 'Er is een fout opgetreden'- melding.
Je hebt groot gelijk. Dat heb ik net aangepast.