Abbiamo un sito web ospitato su un server condiviso. I server MySQL della società di hosting sono ospitati su un server diverso.
Raccogliamo determinati tipi di richieste attraverso un modulo web e li scriviamo in un database. Ogni 10 minuti, cron esegue uno script php che
- esegue una query su una vista nel database (nessun parametro fornito dall'utente o fornito dal programma),
- ci inviano nuove richieste e
- scrive le chiavi per le nuove richieste su un'altra tabella, rimuovendo efficacemente quelle righe dalla vista.
Questo è l'unico processo in esecuzione in cron e cron esegue solo quello script.
Tutto l'accesso al database php avviene tramite PDO. Gli inserti usano il bindParam di PDO.
Un singolo file php contiene le informazioni di connessione per il server MySQL. È memorizzato al di fuori della web root, io sono il proprietario e le sue autorizzazioni sono di sola lettura / scrittura per me senza altre autorizzazioni.
Ieri ho ricevuto questo messaggio di errore via email da cron.
SQLSTATE[HY000] [1130] Host 'somedomain.org' is not allowed to connect to this MySQL server
Finora, questo è un errore occasionale. Il resto del tempo, lo script php funziona come progettato.
Né quel dominio né il suo indirizzo IP compaiono nei file di registro del server web o in un dump del database.
Sono corretto nell'interpretare questo come un tentativo di rompere il nostro server?
Questa configurazione è sufficiente per mantenere i nostri dati al sicuro a meno che le mie credenziali non siano compromesse?
Più tardi ...
Il sito Web di "somedomain.org" è ospitato sullo stesso server del nostro sito web. Se avessero semplicemente sbagliato a connettersi al proprio database, qualsiasi messaggio di errore che potrei vedere non dovrebbe provenire da cron. Questo errore, proveniente da cron, sembra dirmi che in qualche modo stanno cercando di usare le loro credenziali, ma eseguendo il mio script. È giusto?
Ancora più tardi ...
Uno dei miei avvisi Google mi dice che un aggregatore di contenuti, "yetanotherdomain.com" ha iniziato a raschiare dati dalle nostre pagine web. Questo dominio, "yetanotherdomain.com" è non ospitato sullo stesso server su cui si trova il nostro sito web. Ma i contatti amministrativi e tecnici per "somedomain.org" e "yetanotherdomain.com" sono registrati nello stesso numero di telefono negli Stati Uniti.
Ho cercato l'indirizzo IP di "yetanotherdomain.com" utilizzando host
. Il follow up con whois <ip address>
mi dà questo risultato (tagliato).
network:Street-Address:N/A
network:City:Kiev
network:State:OT
network:Postal-Code:04209
network:Country-Code:UKR