Domanda

Ho un percorso nella mia configurazione che dice che per una pagina, diciamo /secure, è richiesto un accesso (effettuato tramite authlogic).Un before_filter nel mio controller se ne occupa.Funziona bene, la pagina e le sue risorse hanno accesso limitato - attraverso l'applicazione.

Il problema è che stiamo utilizzando Amazon S3 per l'archiviazione su questa app (basata su refinerycms) distribuita su heroku.Ho un secchio e funziona bene.

Tuttavia, qualsiasi risorsa inserita nella parte sicura dell'applicazione è direttamente accessibile tramite il browser.In altre parole, il /secure la pagina contiene elementi come file PDF.Mentre tramite l'app le risorse sono protette, i file pdf sono accessibili da qualsiasi punto di Internet (URL di esempio): http://s3.amazonaws.com/my_bucket/images/1234/the_file_ Which_should_be_secure.pdf

Posso eseguire un controllo degli accessi capillare su S3?Devo creare un nuovo bucket?Idealmente mi piacerebbe impostare un flag sulla mia risorsa che la renda invisibile in Internet - non lo so.

Qualsiasi suggerimento è benvenuto.

PSopenid.org ha un certificato SSL scaduto, quindi ho dovuto creare un nuovo account vuoto perché non potevo accedere

È stato utile?

Soluzione

La soluzione più semplice e più facile è solo per citarne i vostri beni S3 con casuale, i nomi dei file difficili da indovinare, e quindi esporre solo gli URL segreti alle persone che dovrebbero avere accesso.

In questo modo le foto di Facebook e molti altri lavori siti (non c'è privacy o la sicurezza al di là l'oscurità dei singoli nomi di file).

Altri suggerimenti

Potresti provare ciò che viene detto in questa pagina:

http://thewebfellas.com/blog/2009/8/29/protecting-your-paperclip-downloads

Le specifiche si trovano nella sezione "Basta con lo streaming, è ora di un reindirizzamento".

Riepilogo: S3 dispone di quattro policy di accesso predefinite. Utilizzando la policy di lettura autenticata, S3 fornisce un modo per generare un URL autenticato per contenuti privati ​​che funziona solo per un periodo di tempo specificato.

In realtà non l'ho fatto, quindi per favore fammi sapere se funziona per te.:-)

Se si utilizza graffetta, è possibile limitare l'accesso agli oggetti memorizzati su Amazon S3 con scadenza url. (Se non ti dispiace usare scadenza url)

Questa è la Wiki da thoughtbot / graffetta su GitHub

https: // GitHub. com / thoughtbot / graffetta / wiki / Limitazione-Access-to-oggetti-stored-on-Amazon-S3

Inoltre, ci sono alcuni link utili nella parte inferiore della pagina, che si potrebbe non vuole perdere.

Forse sono confuso su ciò che si sta cercando di realizzare, ma S3 ha accesso autorizzazioni che richiedono una chiave di crittografia per essere nella URL fornire all'utente. Quando si utilizza la gemma AWS-s3, questa opzione è abilitata di default. Pertanto, non si dovrebbe essere in grado di accedere ai file a meno che l'utente sta utilizzando il collegamento con la chiave cifrata incorporato in esso. Ciò richiederebbe di fare in modo che il file è impostato solo per l'accesso autorizzato.

Maggiori informazioni si possono trovare http://amazon.rubyforge.org/ sulla gemma. Cercare la documentazione relativa al controllo di accesso (penso "authenticated_read" è ciò che si vuole).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top