2010-10-06 10 views
6

Ho pensato di utilizzare Google App Engine per alcuni progetti di hobby. Sebbene non gestiscano dati sensibili, mi piacerebbe comunque renderli relativamente sicuri per una serie di motivi, come l'apprendimento della sicurezza, legale, ecc.Quali problemi di sicurezza devono essere risolti quando si lavora con Google App Engine?

Quali problemi di sicurezza devono essere risolti quando si lavora con Google App Engine?

Sono gli stessi problemi affrontati da altre applicazioni, ad esempio applicazioni scritte in altre lingue o ospitate in altri modi?

Modifica: ho eseguito alcune ricerche sembra che sia necessario disinfettare l'input per XSS and Injection. Quali sono le altre cose da considerare?

risposta

6

L'input "Sanitizing" non è il modo per evitare problemi di iniezione di query e di markup-injection. L'utilizzo della forma corretta di escape allo stadio di uscita è ... o, ancora meglio, utilizzando uno strumento di livello superiore che si occupa di esso per te.

Pertanto, per impedire l'iniezione di query su GQL, utilizzare l'interfaccia con collegamento ai parametri di GqlQuery. Per prevenire l'iniezione di markup contro HTML (che porta a XSS), utilizza la funzione di escape HTML di qualsiasi lingua di template che stai utilizzando. Ad esempio, per i modelli Django, |escape ... o, meglio, {% autoescape on %} in modo da non perdere per errore uno.

+0

Grazie per l'ottima informazione, questo è il genere di cose che stavo cercando. Ci sono altre vulnerabilità che devono essere considerate? – Ocimus

+2

Beh, certo, dipende da quello che stai facendo, vero? Se permetti alle persone di inviare link, è meglio controllare che l'URL sia uno schema noto come "http" e non "javascript" ... se si autorizzano i caricamenti di file è meglio salvarli con un nome sicuro e non uno inviato dall'utente ... non serve i file inviati dall'utente dal tuo hostname principale ... non utilizzare i dati inviati dall'utente in un comando 'system' o' eval' ... ecc. ecc. – bobince

+3

In pratica Gli attacchi di GQL injection sono quasi impossibili anche se il tuo codice è abbastanza orribile, dal momento che l'attacker si limiterà ad aggiungere ulteriori criteri a un'istruzione SELECT. Questo non vuol dire che non si dovrebbe usare il binding di parametri, ma non è un problema serio come con SQL. – geoffspear

-2

In generale ci sono gli stessi problemi. Inoltre google "conosce" il tuo codice e può in teoria monitorare qualsiasi cosa stia facendo il codice. Pertanto è molto difficile se vuoi impedire loro di leggere i tuoi dati. Ma non credo che abbiano tempo e risorse per monitorare il codice e i dati che chiudono.

+0

Non sono molto preoccupato per Google 'conoscere' il mio codice o leggere i miei dati, se questo è ciò che la mia domanda sembrava comunicare, allora mi scuso. Sono più interessato ai problemi di sicurezza che possono lasciare la mia applicazione aperta allo sfruttamento a cose come XSS e SQL Injection, in particolare vulnerabilità di sicurezza che sono uniche per Google App Engine. Hai qualche consiglio su come posso modificare le mie domande per comunicare meglio questo? Grazie per la risposta a prescindere. – Ocimus

+2

Volevo dire che non ci sono particolari rischi per la sicurezza per un motore di app di google che puoi contrastare. Google ospita solo il tuo codice come qualsiasi altro Hoster farebbe. Se hanno un buco nel loro sistema non puoi farci niente. – kasten

+0

Bene, grazie, ora capisco. – Ocimus