Newsgroup: it.comp.www.asp
Titolo: Nascondere l'URL a protezione del database

Questo semplice codice visualizza tutti i nomi degli articoli di un
magazzino (esempio):
do
  response.write "<a href='dettaglio.asp?ID=" + cstr(rs("ID") + "'>"
  response.write rs("Nome")
  response.write "</a>"
  rs.movenext
loop until rs.eof
Nella pagina 'dettaglio.asp' un semplice
ID=request("ID") 
consente di effettuare una nuova interrogazione al database e visualizzare
i dettagli del singolo articolo.
Questo metodo di procedere ha però il grave (per me) difetto di
visualizzare nella barra di stato il codice identificativo di tutti gli
articoli.
Chiunque quindi può accedere al mio archivio e raccogliere le informazioni
(o parte di esse) in esso contenute.
Come mi suggerireste di ovviare all'inconveniente segnalato ?  Forse
usando il metodo POST che però non so applicare al caso qui indicato ?
Grazie per i suggerimenti che vorrete darmi.
Ubt
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 (o parte di esse) in esso contenute.
Alex.
-- 
___________________________________________________________
a p bertolini
(
www.webwarrior.org
)

 (o parte di esse) in esso contenute.
Dunque.
Il sistema che usi è tipico, e d'altra parte, se uno vuol navigarsi il 
catalogo cambiando l'ID in Querystring, son cavoli suoi.
Il problema, se provo a fare una supposta (...) può nascere se certi 
prodotti devono restare nascosti a tutti o a X utenti. Per non farli 
visualizzare, tu NON li metti nell'elenco, cioè non pubblichi i link di 
cui sopra. La supposta è giusta?
Ecco, questo NON è un sistema affidabile: allora sì fai bene a 
preoccuparti. 
Però mi chiedo: se per visualizzare la lista dei prodotti usi certe 
regole (questi sì, questi no) allora queste stesse regole le potresti 
applicare ANCHE nella pagina dettaglio del prodotto, no?

 usando il metodo POST che però non so applicare al caso qui indicato ?
Io in casi simili ho associato ad ogni prodotto un valore... diciamo come
esempio: 1, 2 o 3
Appena l'utente accede al sito, gli viene assegnato (come variabile di
sessione) il livello 1 (in realtà ne ho più di 3)...
Fai conto che 1 è l'utente guest, 2 è l'utente registrato, 3 è l'admin... ma
puoi fare livelli intermedi di categoria... o utilizzare un byte che limiti
determinati settori per ogni bit...  quello te lo vedi tu in base alle
esigenze del progetto.
Comunque, tornando a dettaglio.asp, quando l'utente richiede un ID, lo
script legge dal db questo valore, lo confronta con la variabile di sessione
che determina il tipo di utente, e decide se mostrare il prodotto o no...
rispondendo come meglio credi, puoi far scrivere "ID inesistente" come
"prodotto non disponibile" o credenziali di accesso non sufficienti... come
preferisci insomma.
Ciaooo

 Ubt
Con il metodo post, puoi fare:
<script language javascript>
function invia(quale)
document.f1.id
=quale;
document.f1.submit()
</script>
<form name=f1>
<input type=hidden name="id" value="0" />
<%
'...
 do
   response.write "<a href='javascript:invia(" + cstr(rs("ID") + ");'>"
   response.write rs("Nome")
   response.write "</a>"
   rs.movenext
 loop until rs.eof
%>
</form>
Ciao
-- 
AZ [Microsoft .NET MVP]
.NET Community: 
http://www.aspitalia.com/
Il mio blog: 
http://blogs.aspitalia.com/az/
Microsoft MVP: 
http://italy.mvps.org/
Sito personale: 
http://ciclismo.sitiasp.it/

 Ciao
Perfetto, perfetto nella sue imperfezione (qualche parentesi in meno,
qualche parola sbagliata, ma niente a cui non si possa rimediare: il succo
c'è !).
Proprio quello che serviva a me.
Grazie, grazie per aver voluto digitare al volo l'esempio, facendo quei
piccoli errori che ho voluto citare, errorini a cui è stato facile porre
rimedio.
Ho giò collaudato il codice e, con qualche piccolo adattamento al mio caso
particolare, ho risolto con il tuo aiuto il mio problema.
Grazie. 
UBt
P.S.: Adesso, a puro scopo di sperimentazione, cercherò di "rubare a me
stesso" i dati delle pagine HTML, avendo nella barra di stato quale unica
informazione un "Javascript(1152);"


 Alex.
E' piuttosto semplice, con un programma in VB, fare un ciclo FOR NEXT che
scandisce i codici da, poniamo, 1 a 100000 e costruisce un URL con 
?ID=1
?ID=2
?ID=3
Quindi con un controllo (un OCX) Inet si salva su HD 100000 diverse pagine
HTML, frutto di 100000 diverse interrrogazioni al database.
Ciao
UBt


 Grazie.
Prego :)
