Wat betekent deze melding? "(proxy) all backends are down"

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johan de wit

johan de wit

03/09/2015 01:35:41
Quote Anchor link
Weet iemand wanneer je dit ziet en hoe kan je databasepassword en databaseuser met databasename verbergen bij zulke meldingen?

Could not connect: localhost : databaseuser : databasename : databasepassword (proxy) all backends are down
Gewijzigd op 03/09/2015 01:36:34 door Johan de wit
 
PHP hulp

PHP hulp

19/04/2024 22:55:00
 
- Ariën  -
Beheerder

- Ariën -

03/09/2015 08:40:34
Quote Anchor link
Deze melding krijg je als er geen verbinding met de database kan worden gemaakt.
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 -
 
Johan de wit

johan de wit

03/09/2015 20:31:13
Quote Anchor link
Welke stuk code wil je precies zien?
 

03/09/2015 20:37:02
Quote Anchor link
Als de code eerst wel werkte en nu niet meer dan is je database server down.
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.
Gewijzigd op 03/09/2015 20:39:15 door
 
Thomas van den Heuvel

Thomas van den Heuvel

03/09/2015 20:45:55
Quote Anchor link
Wachtwoorden horen imo ook niet in een logbestand thuis.
 

03/09/2015 21:25:55
Quote Anchor link
Dat klopt, je hebt gelijk Thomas. Dat is ook een security fail.

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 03/09/2015 21:52:35 door
 
Johan de wit

johan de wit

04/09/2015 16:01:20
Quote Anchor link
Moet ik config bestand aanpassen? Zo ja, dan zet ik code hier dat jullie ook makkelijker kunnen beoordelen.
Gewijzigd op 04/09/2015 16:01:58 door johan de wit
 
- Ariën  -
Beheerder

- Ariën -

04/09/2015 16:24:58
Quote Anchor link
Een configuratiebestand is om diverse waardes voor je website (zoals je database gegevens) te configureren.
De reden dat je de waardes ziet moet je op de plek zoeken waar deze worden weergegeven.
 
Johan de wit

johan de wit

04/09/2015 16:32:53
Quote Anchor link
Dat zie je op index pagina staan.
 
- Ariën  -
Beheerder

- Ariën -

04/09/2015 16:35:53
Quote Anchor link
Dan moet je die foutmelding even aanpassen, zodat je bijv. alleen in ontwikkelmodus deze waardes ziet. het wachtwoord zou ik echt NOOIT tonen.
 
Johan de wit

johan de wit

04/09/2015 16:45:40
Quote Anchor link
Daar schrok ik ook om want zo kan iedereen in PhpMyAdmin inloggen.

Dan moet ik even goed doorlopen. Hoe kan zo`n melding code uitzien?
 
- Ariën  -
Beheerder

- Ariën -

04/09/2015 16:47:10
Quote Anchor link
Een print of een echo commando?

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 -
 
Johan de wit

johan de wit

04/09/2015 16:54:53
Quote Anchor link
Ik heb het gevonden.

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
 
- Ariën  -
Beheerder

- Ariën -

04/09/2015 17:02:20
Quote Anchor link
Ik zou er een algemene melding van maken, in de trant van:
"Er is een fout opgetreden"

Waarbij je in je ontwikkelomgeving de volledige error toont. Dit kan prima met een 'constante' bijvoorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.');
}


?>
Gewijzigd op 04/09/2015 17:04:18 door - Ariën -
 
Johan de wit

johan de wit

04/09/2015 17:21:55
Quote Anchor link
mysql_error() heb ik verwijderd nu zie je een blanco pagina.
 
- Ariën  -
Beheerder

- Ariën -

04/09/2015 17:24:08
Quote Anchor link
Voor gebruikers is dat niet fijn. Sommige vragen zich dan bij een error af of het misschien aan hunzelf ligt.
Toon dan liever een 'Er is een fout opgetreden'- melding.
 
Johan de wit

johan de wit

04/09/2015 17:27:51
Quote Anchor link
Je hebt groot gelijk. Dat heb ik net aangepast.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.