Newsgroup: it.comp.www.php
Titolo: brutta noia con provider per file logins database

Ciao a tutti,
vi chiedo una dritta per una situazione che se irrimediabile è davvero 
assurda.
Sto per spostare il sito da locale a remoto per il varo definitivo e il 
file con i logins al database(dbase.inc.php) per motivi di sicurezza 
l'ho messa in una cartella esterna a quella del sito(httpdocs). 
Purtroppo il provider mi mette a disposizione solo tre folders esterne a 
httpdocs e sono:
httpsdocs
anon_ftp
private
sembrano settabili a piacere nei permessi ed ho provato a inserire in 
ciascuna il file con i logins, adattando i links dello script che lo 
richiamano, per vedere se il sito gira ugualmente..
Ma niente da fare lo script principale non riesce ad accedere al file 
con i logins e mi da irrimediabilmente errore:
Access denied for user: 'apache@localhost' (Using password: NO).
i logins sono corretti IMHO è un problema interno al server di 
autorizzazione ad accedere a quella particolare cartella dove inserisco 
il file con i logins.
Ho controllato i permessi di dette cartelle ma anche lasciandole con 
tutte le opzioni write/read/execute spuntate il login al file in esse 
presente non va!
Praticamente il login al database mi funge solo se il file con i logins 
lo metto nella folder princpale del sito! (httpdocs)
Ma vi rendete conto che cosi' è davvero poco sicuro??
Molte guide sulla sicurezza consigliano di posizionarlo esternamente a 
tale folder ma il mio isp non me lo permette.
Ho contattato l'help desk e niente da fare, dicono che non possono 
settarmi una cartella ad hoc esterna perchè altrimenti avrebbero 
problemi di gestione... non possono farmi accedere al file httpd.conf e 
al massimo devo arrangiarmi con i file .htaccess
e ora che faccio?
Esiste la possibilità di creare un file .htaccess da inserire in una 
delle tre cartelle e farmi richiamare tranquillamente il file con i logins?
Avete consigli o links da leggere?
Grazie mille a chiunque risponde.
Lorenzo
PS: post crosspostato anche su it.lavoro.professioni.webmaster

 Avete consigli o links da leggere?
In che senso richiamare tranquillamente il file ? Fuori dalla webroot 
dubito che un file .htaccess abbia una qualche utilità.

 dubito che un file .htaccess abbia una qualche utilità.
ok claro ma resta il problema dell'include che non avviene, che ne 
pensi? Suggerimenti?
Grazie mille.
Lorenzo

 pensi? Suggerimenti?
Ma include() va a buon fine o no?

 Ma include() va a buon fine o no?
si, quell'errore è del database.
Sto cercando in rete ulteriori dettagli e ho trovato questo post di un 
altro utenti:
http://www.faqts.com/knowledge_base/entry/edit/index.phtml?aid=36475&fid=51&return_url=%2Fknowledge_base%2Fview.phtml%2Faid%2F36475%2Ffid%2F51
e la probabile spiegazione verso la fine di questa pagina:
http://www.awprofessional.com/articles/article.asp?p=31474&seqNum=2&rl=1
abbia pazienza, dimmi che ne pensi.
Grazie ancora.
Lorenzo

 abbia pazienza, dimmi che ne pensi.
Ho letto solo il primo link, la soluzione che propongono per non poter 
accedere come utente "apache" è .. dare i permessi di accesso all'utente 
apache.
Però per fare quello credo che tu debba essera DBA, io non potrei con 
tophost ad esempio.
Tu invece lamentavi un altro problema, cioé quello di non riuscire a 
fare l'inclusione dei dati di accesso al db usando include.
Quindi:
1) commenta la connessione al db e fatti invece stampare a video i 
valori di login e password così sai se l'include del file nella cartella 
"private" va a buon fine.
2) controlla, con un client mysql, se quei dati sono efficaci per 
collegarsi al db
Separa i possibili problemi in modo da poterli identificare.

suppaman ha scritto:

ciao, ho parlato questa mattina con l'assistenza tecnica dell'isp.
Praticamente di default restringono l'accesso al database per le tre dir 
che ho elencato ieri. Quindi per loro devo necessariamente mettere il 
file con i logins in httpdocs e da lì arrangiare con .htaccess per 
proteggerlo.
In caso contrario devo passare ad una soluzione business ove mi 
consentono maggiori personalizzazioni...
Ricapitolando il mio problema non riguarda i permessi CHMOD ma è legata 
alla mancanza di privilegi per loggarsi al dbase da quella dir!
..Ma allora che me ne faccio di quella dir se non può interagire con lo 
script principale???
Mah.. pazienza...
Grazie davvero tante per l'aiuto ed il tempo che mi hai dedicato.
Lorenzo

 script principale???
Dovresti chiederlo all'assistenza tecnica dell'isp a questo punto.
Io rimango dell'idea che si dovrebbe controllare i parametri con i quali 
fai la connessione al server prima di continuare a parlarne.

suppaman ha scritto:

per cortesia dimmi di preciso cosa devo inserire.
Per il resto.. cantavo vittoria ma questa sera quando ho spostato il 
resto del portale in remoto mi è comparso nuovamente il messaggio di 
errore...
una sola cosa ho capito: quando fa degli include salendo di directory o 
salta tra directory parallele esce l'errore. Quando i file da includere 
sono invece in una sottocartella allora tutto funge. L'errore è comunque 
del database.

ecco la conferma, ho provato a rimuovere l'include dallo script 
principale e ad inserire direttamente le righe di connessione:
$ldb=mysql_connect('localhost','xxxxxxx','xxxxxxxx') or die ("errore 
connessione dbase host".mysql_error());
mysql_select_db("xxxxxx",$ldb) or die ("impossibile connettersi al 
db!".mysql_error());
ovviamente al posto delle xx ci sono il nome utente,password e database 
originali.

 principale e ad inserire direttamente le righe di connessione:
Conferma di che ? Dici che hai inserito le righe ma non dici se funziona 
o meno.

 del database.
Se il file da includere è in sottocartella c'è errore o no ? Gli ultimi 
due periodi mi confondono.

suppaman ha scritto:

scusa, nella foga non ho indicato l'essenziale. Volevo dire che 
rimuovendo l'include ed inserendo direttamente le righe di connessione 
lo script funge e si collega al dbase.

 due periodi mi confondono.
no non c'è errore e funge tutto.
Grazie ad aeternum
Lorenzo

 /var/www/vhosts/
miosito.it/httpdocs
Però che httpdocs è presente in quel path lo vedi.
Prova include(/var/www/vhosts/
miosito.it/httpdocs/login.php
) .
Scommetto che avrebbe funzionato al primo colpo.

 Scommetto che avrebbe funzionato al primo colpo.
inizialmente non capivo cosa intendevi con assoluto, scrivendo cosi' in 
effetti funge. Purtroppo per private nisba almeno facendo 
include(/var/www/vhosts/
miosito.it/private/login.php
)
pazienza, se non hai altre soluzioni direi che è il caso di fan***izzare 
questo include e andare avanti nel lavoro.
Grazie davvero tante tante e tante di tutto
buona Pasqua
Lorenzo.