Newsgroup: it.comp.www.asp
Titolo: Generare un url casuale per il download...

Ciao a tutti, ho un problema.
Sul mio sito verrà meso in vendita del software scricabile previo pagamento
con carta di credito.
Il problema è che vorrei che il software avesse un URL casuale.
Mi spiego:
su molti siti (per esempio 
www.mame.dk
, 
www.myplay.com
) ho visto che il file
che si desidera scaricare ha un URL del tipo:
http://www.dominio.com/xgbthxbhthbkj/miofile.zip
Chiaramente xgbthxbhthbkj non è una sottocartella di 
www.dominio.com
, ma una
specie di "fake folder".
Come posso generare qualcosa di simile?
Grazie in anticipo
--
Un maraschino a tutti.
L'uka (It's OK. I'm a limo driver!)
DUDI N. 458 (
http://www.ihm.it
)
Zip 50 -> Vespa PX125 -> Honda XL 600 Rossa
Ceci -> Suzuki Sv650 '00 Blu L'amaiala ->
Honda CBR600F 2001 PGM-FI Accurate Silver Metallic M'orello

--
Perche' non potrebbe essere proprio quella lacartella?
Ciao

 ha scritto nel messaggio
news:9onn0j$e86jo$1...@ID-55412.news.dfncis.de...


 Ciao a tutti, ho un problema.
_cut
io eviterei sia la creazione di una dir fake e anche la randommizzazione 
del nome del file (cosa che potrebbe creare confusione agli utenti) e 
opterei per una soluzione a filtro:
una pagina getfile.asp?id=xxx la quale controlla dei permessi (variabili 
session settate dopo il pagamento) e dopo di che fa un binarywrite del 
file letto dal disco..
bisognerebbe fare un paio di prove per avere la sicurezza che la path 
originale rimanga nascosta, ma penso che la cosa sia fattibile :)
ciao,
d.

 Grazie in anticipo
Non saprei come fare, ma sono interessato alla cosa. 
Se la risolvi fammi un fischio!
Stefano Pedone
-- 
Posted from  [193.204.78.97] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Il problema è che vorrei che il software avesse un URL casuale.
Il link casuale dovra' comunque essere contenuto in una pagina accessibile
con password, giusto ? A questo punto ti conviene usare un codice antileech
per proteggere la cartella contenente i programmi, in modo da evitare il
download diretto (referer = "" o <>  tuodominio), consentendo quindi il
download solo a chi riesce ad accedere alla pagina protetta con password,
ovvero presumibilmente chi ha pagato con carta di credito..
Altra soluzione e' rendere il programma shareware o trial inviando il codice
di sblocco a chi si registra.
Altra soluzione e' far inviare automaticamente tramite mail il programma.
Insomma tra tutte le possibilita' che hai, quella del link casuale mi sembra
la piu' incasinata, dato che poi dovresti anche eliminare il file dopo che
l'utente ha finito di scaricarlo, con tutti i problemi che ne derivano.
A presto
--
Francesco Morelli

 Testare, prego!!
Non ho provato il metodo prima di tutto perche' sicuramente non funziona,
dato che con Server.MapPath bisogna mettere un indirizzo relativo ed in obj
FILE c'e' uno spazio di troppo, e poi perche' con questo metodo sorge il
problema di eliminare il file dopo che l'utente lo ha scaricato, altrimenti
l'indirizzo casuale diventa un indirizzo fisso ed il file viene
continuamente duplicato sprecando spazio su disco. I primi problemi che mi
vengono in mente sono:
1) Come stabilire se e quando l'utente ha terminato il download ?
2) Se c'e' un errore di trasferimento e lo deve riscaricare, deve pagare di
nuovo per trovare l'indirizzo giusto ?
3) Come eliminare il file automaticamente dopo che l'utente ha terminato
tutto ?
4) E se qualcuno trovasse l'indirizzo reale del file ?
Per questo nel post successivo ho suggerito l'utilizzo di un codice
antileech o l'invio tramite mail, lo so che il messaggio originale parlava
della generazione di un URL casuale ma e' proprio la premessa che e'
sbagliata..


 Altra soluzione e' far inviare automaticamente tramite mail il programma.
ma non è detto che i programmi siano suoi.. :)
ciao,
d.

originale rimanga nascosta, ma penso che la cosa sia fattibile :)
Se leggi il file e fai una binarywrite sei ASSOLUTAMENTE sicuro che la
path rimanga nascosta.
Per L'uka: il sistema proposto da Daniele č sicuramente quello che
devi utilizzare (se vuoi con alcune modifiche per far si che chi ha
pagato possa fare il download del programma per piů volte es.: in caso
di download interrotto). Se hai dubbi sul come implementarlo, chiedi
pure.


Sono un principiante, faccio questa domanda solo per chiarimento personale.
Non si potrebbe creare un cookie, dopo il pagamento, contenente l'id del file da
scaricare e la password di un database all'interno del quale ci saranno due campi
l'id e la path del file?
--
Enjoy the .NET community! ASPItalia.com
 
http://forum.aspitalia.com/
 
http://www.aspitalia.com/

Grazie a tutti, ma ho trovato la soluzione.
E' un miscuglio di tutte quelle che mi avete suggerito.
Dopo il pagamento vado ad una pagina get.asp che legge un po' di variabli
session.
controlla chiaramente che il Refer sia giusto e poi genera un nome di folder
casuale, lo crea sul mio HDD, ci copia dentro il file e ga un redirect a
quel file.
Sul server ho messo un daemon che cancella le directories 24 ore dopo la
loro creazione.
Cosě dovrebbe funzionare.
Grazie a tutti per i consigli


 pure.
vabhe' parliamone pure che magari puo' essermi utile in futuro :)
tu che faresti? a me vengono in mente 2 soluzioni:
1) utilizzare un "on error" dopo il binarywrite (anche se non so se una 
connessione interrotta venga vista come errore..)
2) andar a scrivere su un db dopo il binarywrite per segnare l'avvenuto 
download (ma non so se in effetti il codice viene "bloccato" fino alla 
fine del response, non mi č mai capitato di provare)
ciao,
d.

fine del response, non mi è mai capitato di provare)
In realtà io pensavo ad una soluzione molto più semplice :)
Assegni un codice (o username/password o un cookie permanente o
simili) all'utente, in modo tale che possa fare il download più volte.
C'è però il rischio che un utente paghi e distribuisca il suo
user/pass, codice o cookie in giro permettendo ad altri il download
"aggratis".
Una soluzione potrebbe essere:
- al pagamento, registrazione nel db dei dati forniti dall'utente, in
particolare dell'e-mail (assegnamento di password inviata via e-mail)
- l'utente richiede il download del software via sito web, fornendo la
sua e-mail e password
- soluzione 1: attachment del software :) e finisce qui
- soluzione 2: all'utente viene fornito un codice per il download, nel
db salviamo il codice, il timestamp, e uno status = 0, in modo tale da
poter ritenere non valido il codice se ad es. sono passate 48 ore
- l'utente tenta di fare il download con il codice fornito: se status
= 0 o status = 1 e non sono passate 48 ore lasciamo fare il download,
e in db mettiamo status = 1 all'inizio del download
- alla fine del download settiamo status = 2
Ecco così potrebbe funzionare. E l'utente può richiedere un codice per
il download quante volte vuole, però così c'è molto più controllo sul
download.