Newsgroup: it.comp.www.php
Titolo: correggere + file sul server

ciao a tutti,
premetto che sono digiuno di php.
Scrivo qui per cercare di risolvere un problema.
Sul mio sito, tramite un hack, è stato aggiunta una riga, su tutte le 
pagine .html, .php e .htm, contenente un IFRAME.
Vorrei chiedere se è possibile tramite il php creare uno script che 
modifichi, sul server, tutti i files che contengono quella riga 
cancellandola. Questo perchè i files in questione sono più di 800 e 
correggerli tutti manualmente sarebbe un'impresa enorme.
Se con php non è possibile fare una cosa del genere, accetto qualsiasi 
altro suggerimento, tranne quello di chiedere all'host perchè mi ha già 
detto che non è possibile.
Ciao
Octopus

 detto che non è possibile.
La risposta dell'host è più che comprensibile: non spetta a loro
risolvere questi problemi.
In php sarebbe possibile ma più complicato di adottare un'altra soluzione.
Avendo i file in locale ti consoglio di usare la funzione trova e
sostituisci presente in molti editor (alcuni di questi lo fanno anche su
+ file).
Sfortunatamente una volta ho dovuto fare una cosa simile ma non ricordo
con che programma.
Sorry ma forse un motore di ricerca ti potrà aiutare.
-- 
Amministratore
www.amiciamici.com
Giornalismo dal basso sull'amicizia e sul turismo
"Pronto Chi Bussa" il primo podcast di Parma e provincia?

 cancellandola. 
Supponendo che ci siano i permessi di scrittura sui file, puoi, 
nell'ordine:
- partendo dalla directory di livello superiore,
- scorrere tutti i file all'interno delle varie directory (usando una 
combinazione delle varie funzioni che php ti mette a disposizione, tra 
cui is_dir, openddir, readdir)
- se il file è di tipo htm, html o php, (usi a questo proposito la 
funzione filetype),
- lo leggi (usando ad esempio la funzione file_get_contents)
- lo "spurghi" delle porcherie che vuoi (usando le amatissime funzioni 
per le espressioni regolari, tipo preg_replace)
- salvi nuovamente il file (il metodo più veloce è l'uso della funzione 
file_put_contents, o tradizionalmente fwrite o simili)
- continui a ciclare fino a quando non hai analizzato tutti i file che 
vuoi (con un semplice ciclo for).
ps: se comunque hai una copia locale di tutti i file, forse fai prima a 
sostituirli di nuovo tutti.
ps1: in produzione dovrebbe sempre essere previsto un sistema di 
recupero (esempio su base giornaliera, non solo di backup del db, ma 
anche dei files), in modo che se ti succedono casini ci metti poco a 
tornare allo stato "sicuro".
Più che altro il problema che ti dovresti porre è: che falla hanno 
sfruttato per danneggiare 800 file? Se non risolvi quella falla, ci 
vorrà un attimo a bucarla di nuovo.
--
rob4you

rob4you ha scritto:

La falla è sicuramente sul server che ospita il sito perchè il mio non è 
stato l'unico ad avere questo problema.
La copia in locale l'ho fatta, e sono riuscito, tramite un programma, a 
correggerli tutti in 5 min.
Volevo sapere se si può fare direttamente sul server per evitare, 
rimettendo i files sul server, di dover modificare tutti i permessi.
Uso un CMS (joomla) e quindi rimettendo i files avrebbero un 
proprietario diverso da quello che dovrebbe essere per far funzionare 
tutto bene.
Se esistesse un modo per mantenere proprietario e permessi sarei a 
cavallo, ma passando da remoto in locale credo che si perdano.
Comunque di quello che mi hai detto purtroppo ho capito ben poco, nel 
post avevo premesso di essere digiuno di php; intendo che proprio mi 
mancano le basi.
Comunque grazie per la risposta, vedrò di informarmi un pò sul php, e se 
non riesco mi tocca fare tutto da locale, come hai detto tu.
Ciao
Octopus

 tutto bene.
Questo non l'ho capito, ma Joomla non l'ho nemmeno mai visto (usavo Nuke)


Octopus ha scritto:

Ho trovato su 
html.it
 nella sezione php lo script Myshell, secondo voi 
potrei usarlo per fare la correzione con i comandi shell?
Lo conoscete questo script?

 mancano le basi.
manuale almeno le basi le impari


 cavallo, ma passando da remoto in locale credo che si perdano.
Da remoto in locale assumono come proprietario l'utente che li scarica 
(credo).

 un'impresa enorme.
Rifletterei su questo punto. Se sai che una parte di codice è
"condivisa da più files", perchè non centralizzarla in modo da poter
lavorare tranquillamente su un solo file invece che su 800?
Ciao,
     Fabrizio
=== 
http://www.negusweb.it
 ===