Bug autenticazione in script d'installazione

Installazione, configurazione generale, notifiche, API, lingue, problemi server
Post Reply
Send
Newbie
Posts: 20
Joined: Tue Sep 04, 2018 11:17 am
Version: forma.lms 2.0

Bug autenticazione in script d'installazione

Post by Send »

Penso di aver beccato un bug nello script d'installazione nello step 6

mettiamo ad esempio di avere i seguenti dati (ovviamente fittizzi ;) )

Code: Select all

	user: G7SJ06G05
	db name: G7SJ06G05
	pass: 123456789
ora nel mio caso se inserisco tutto correttamente il db viene creato, o va in errore di codifica utf8, ma se converto il nome db in minuscolo lo script prosegue, mentre dovrebbe restituire un errore di autenticazione, con relativo errore nei log, allego screen. e log

Code: Select all

2018/09/04 12:06:37 [error] 4988#4988: *128 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Error: Class 'Log' not found in /*****/public/******/wwroot/db/drivers/docebodb.mysqli.php:65
Stack trace:
#0 /*****/public/******/wwroot/db/lib.docebodb.php(552): mysqli_DbConn->select_db('********')
#1 /******/public/******/wwroot/install/import_db.php(16): sql_select_db('********')
#2 {main}
  thrown in /*****/public/*****/wwroot/db/drivers/docebodb.mysqli.php on line 65" while reading response header from upstream, client: **.**.**.***, server: urzica.it, request: "GET /install/import_db.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9006", host: "****.it", referrer: "http://*****/install/index.php"
Attachments
screen-1.jpg
screen-2.jpg
User avatar
canelli
FormaLms Guru
Posts: 496
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

Re: Bug autenticazione in script d'installazione

Post by canelli »

2018/09/04 12:06:37 [error] 4988#4988: *128 FastCGI sent in stderr: "PHP message: PHP Fatal error: Uncaught Error: Class 'Log' not found in /*****/public/******/wwroot/db/drivers/docebodb.mysqli.php:65
L'installazione non carica correttamente i file / classi per il log degli errorr. Questo è senz'altro un bug dell'installazione .
e inserisco tutto correttamente il db viene creato, o va in errore di codifica utf8, ma se converto il nome db in minuscolo lo script prosegue, mentre dovrebbe restituire un errore di autenticazione, con relativo errore nei log,
Hai inserito all'inizio un nome di database in maiuscolo (e creato in maiuscolo), poi lo step6 utilizza il nome del database in minuscolo . Se così è questo è un bug. il nome del database deve essere utilizzato e memorizzato nel file config.php così come digitato negli step precedenti.

Ricordo che mysql / mariadb è sensibile nei nomi del database e delle tabelle al minuscolo / maiuscolo, specialmente sui sistemi linux . su windows il filesystem è insensibile a questa distinzione e quindi anche mysql/ mariadb. Su linux si può disabilitare nel file di configurazione di mysqlsql / mariadb ( my.cnf) il riconoscimento diverso nei nomi di db/tabelle minuscolo/ maiuscolo.
E' comunque buona prassi definire i nomi sempre in minuscolo
Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------
Send
Newbie
Posts: 20
Joined: Tue Sep 04, 2018 11:17 am
Version: forma.lms 2.0

Re: Bug autenticazione in script d'installazione

Post by Send »

Hai inserito all'inizio un nome di database in maiuscolo (e creato in maiuscolo), poi lo step6 utilizza il nome del database in minuscolo . Se così è questo è un bug. il nome del database deve essere utilizzato e memorizzato nel file config.php così come digitato negli step precedenti.
No il database è creato in maiuscolo ma è stato digitato in minuscolo; dopo altri test ho capito che lo script controlla le credenziali con una chiamata Ajax ma non verifica l'esistenza del db stesso fidandosi che cia sia un db associato all'user nel server mysql. Ovviamente lo step procede ma si genera quell'errore perchè effettivamente il nome del db non è stato validato correttamente.

Per replicare lo stesso errore, prova ad inserire nello stesso step il nome di un db errato ma dati user e password corretti, vedrai che verrà validato correttamente.

Notare che viene comunque scritto un file di configurazione malformato. Il che permette l'inserimento di codice arbitrario. Non ho il tempo materiale di fare un poc ma è bastato giusto lavorare di escape

Code: Select all

';echo 'Escape to the World!!';//
per compromettere lo script di installazione; non pubblico il codice ma è possibile eseguire codice arbitrario anche nella root di forma ad esempio redirect o altro. Per il momento consiglio di cancellare la cartella "install" e proteggere da scrittura il file "config.php"
Attachments
escape-1.jpg
escape-2.jpg
User avatar
canelli
FormaLms Guru
Posts: 496
Joined: Thu Nov 08, 2012 12:21 pm
Version: forma.lms 2.0
Contact:

Re: Bug autenticazione in script d'installazione

Post by canelli »

Grazie per le note integrative sul modo di riconoscre il db .
Notare che viene comunque scritto un file di configurazione malformato.
grazie per questa ulteriore segnalazione . i parametri del db andranno sanitizzati prima di scrivere il file config .
Per il momento consiglio di cancellare la cartella "install" e proteggere da scrittura il file "config.php"
cancellare / rinominare la cartella install e upgrade al termine dell'installazione è una operazione da effettuare sempre e indicata nelle istruzioni di installazioni . hai fatto bene a ricordarlo !
Le procedure di install e upgrade sono le uniche che eventualmente creano / modificano il file config.php.
è buono e virutoso comportamento mettere in sola lettura il file config.php, a prescindere dalla presenza della cartella install . Il file config.php in sola lettura assicura che nessuno possa modificarlo .

Aggiungo che
Per maggiore sicurezza della piattaforma , tutti i file php e le cartelle presenti dovrebbero essere non scrivibili da apache / web server . Apache deve poter scrivere file nella sola cartella files e sottocartelle
Cercate nel forum le riposte prima di chiedere. Check the forum before posting
---------------
Claudio Anelli
Joint Technologies - Sistemi avanzati per l'information technology

http://www.joint-tech.com
---------------
Post Reply