Il mio sito web è ospitato in Cina e, come sapete, tutti i siti cinesi devono registrarsi per ottenere una licenza dal governo; pertanto, tutti i siti cinesi sono sotto sorveglianza.
Recentemente qualcuno ha segnalato al mio provider CDN, Qiniu (anch’esso un’azienda cinese), che alcune immagini sul mio sito sono illegali. Il mio provider CDN mi ha informato che dovrei eliminare queste immagini e “aggiornare la cache degli URL”, altrimenti potrebbero sospendere il mio account in base alla legge. Tuttavia, ho scoperto che queste immagini sono avatar degli utenti e non so come eliminarli.
Secondo How to Delete Uploaded Files? - #3 by codinghorror e How to Delete Uploaded Files? - #25 by Falco, le immagini caricate senza riferimenti vengono eliminate automaticamente dopo 48 ore. Ho sostituito questi avatar degli utenti con quelli predefiniti a forma di lettera, ma dopo 72 ore non sembra essere successo nulla agli avatar vecchi. Forse è perché gli avatar degli utenti non sono considerati immagini caricate?
Avete qualche idea su come eliminare completamente i file degli avatar degli utenti dal mio server?
Oh, scusa. Gli avatar funzionano in modo diverso. Dovrei esaminare il codice per capire dove guardare. Se si tratta di un’emergenza e hai un budget, ti prego di contattarmi direttamente. Altrimenti, probabilmente non avrò tempo libero per indagare. Forse qualcun altro lo sa.
Per impedire agli utenti di caricare futuri avatar, puoi disabilitare l’impostazione del sito allow uploaded avatars e abilitare selectable avatars con una vasta selezione.
Penso che tu possa dover caricare un segnaposto sostitutivo per ottenere l’eliminazione automatica: il record utente mantiene ancora attivo l’immagine dell’avatar caricato, anche se non è in uso.
I file caricati sono denominati in base all’SHA1 del contenuto dell’immagine: questo potrebbe aiutarti a trovare il file di backup?
Ho oltre 7.000 utenti registrati e meno di 5 utilizzano avatar illegali senza saperlo, quindi non voglio trasformarlo in un problema di tipo 0 o 1; preferisco risolverlo caso per caso invece di impedire a tutti gli utenti di usare avatar personalizzati.
root@iosre:~# cd /var/discourse/shared/
root@iosre:/var/discourse/shared# /var/discourse/launcher enter app
WARNING: Docker versione 17.05.0-ce deprecata, si consiglia l'aggiornamento a 17.06.2 o versioni successive.
root@iosre-app:/var/www/discourse# rails c
[1] pry(main)> a=UserAvatar.where(user_id: 1234)
=> []
[2] pry(main)> a=UserAvatar.where(user_id: lincwee)
NameError: variabile o metodo locale `lincwee' non definito per main:Object
da (pry):2:in `__pry__'
[3] pry(main)> a=UserAvatar.where(user_id: 'lincwee')
=> []
[4] pry(main)>
per elencare tutti gli URL degli avatar e li ho cancellati dal mio server.
Ma immagino che debba ancora aggiornare ulteriormente il sistema/la cache? Come dovrei farlo?
Ho ricevuto un’altra email dal mio provider CDN e hanno bloccato il mio account CDN. Quindi devo aggiornare questa discussione per ricevere ulteriore aiuto.
La nuova email diceva che i seguenti link erano illegali.
Come potete vedere, si tratta di due avatar utente, che sono meme di un ex presidente cinese. Ancora una volta, il provider CDN mi ha chiesto di eliminare questi file dal server e aggiornare la CDN.
Dai link ho potuto vedere che gli utenti erano “baal998” e “lincwee”. Secondo il frammento di codice nel mio ultimo post, l’URL dell’avatar caricato di “lincwee” era /uploads/default/original/2X/5/55512211b1c8969c8038b79840464952cd3eb089.jpeg, mentre per “baal998” era /uploads/default/original/2X/c/cb2188eaeecc3a648f021fa00da4734bd60ca183.jpg. Ho quindi eseguito find /var/discourse/shared/ -name *55512211b1c8969c8038b79840464952cd3eb089* ed eliminato tutti i file trovati; ha funzionato per “lincwee”. Ma non ho avuto fortuna con “baal998”: potevo ancora accedere a https://iosre.com/user_avatar/iosre.com/baal998/135/2210_2.png anche se non c’erano più file con il nome *cb2188eaeecc3a648f021fa00da4734bd60ca183*.
O per renderlo più semplice: come analizza Discourse una visita a https://iosre.com/user_avatar/iosre.com/baal998/135/2210_2.png? Se qualcuno che conosce il codice sorgente può indicarmi il file sorgente o la classe/funzione, sarebbe davvero utile. Grazie!
Inoltre, inizia recuperando i dati dal tuo server, non dalla CDN. Vuoi essere sicuro di risolvere il problema nel posto giusto. Una volta accertato che il server non stia inviando le immagini, puoi lavorare con la CDN.
Sì, e vedi che viene inviato dal tuo server. Quindi è quel link che dovresti cercare di risolvere. Dopo aver fatto in modo che smetta di inviare le immagini, puoi cancellare il CDN.