Newsgroup: it.comp.lang.visual-basic
Titolo: [!] cosa succede se non vengono gestiti gli errori in asp

Ho tirato giu' questo sorgente asp "vero" da un sito (tra quelli recentemente 
segnalati in uno degli recenti post) che si e' incartato a causa di un errore di 
runtime non gestito.
Gli e' andata bene che non c'era il codice di connessione a qualche database,
con tanto di utente e password ...
ciao, hal
----------------------------------------------------------------------------------
<%
  Dim ua, os, SC1, SC2, MB, MP
  Dim bwsrOS, bwsrName, bwsrVer, bwsrType, bwsrBeta, bwsrCompatType
  ua  = Request.ServerVariables("HTTP_USER_AGENT")
  os  = Request.ServerVariables("HTTP_UA_OS")
  bwsrType = "NA"
  bwsrCompatType = "NA"
  bwsrName = "NA"
  bwsrVer  = "NA"
  bwsrOS   = "NA"
  ' Determine the Browser
  If Instr(ua, "MSIE") or Instr(ua, "Microsoft Internet Explorer") Then
    bwsrName = "IE"
    If Instr(ua, "MSIE 5.5") Then
      bwsrVer = 55
    ElseIf Instr(ua, "MSIE 5.") Then
      bwsrVer = 50
    ElseIf Instr(ua, "MSIE 6") Then
      bwsrVer = 60
    ElseIf Instr(ua, "MSIE 4.") Then
      bwsrVer = 4
    ElseIf Instr(ua, "MSIE 3.") Then
      bwsrVer = 3
    Else
      bwsrVer = 2
    End If
  ElseIf Instr(ua, "Netscape6") And Instr(ua, "compatible") = 0 Then
    bwsrName = "NS"
    bwsrVer = 6
  ElseIf Instr(ua, "Mozilla") And Instr(ua, "compatible") = 0 Then
    bwsrName = "NS"
    If Instr(ua, "Mozilla/5") Then
      bwsrVer = 5
    ElseIf Instr(ua, "Mozilla/4") Then
      bwsrVer = 4
    ElseIf Instr(ua, "Mozilla/3") Then
      bwsrVer = 3
    Else
      bwsrVer = 2
    End If
  ElseIf Instr(ua, "Opera") Then
    bwsrName = "OPERA"
    If Instr(ua, "Opera/3") Then
      bwsrVer = 3
    ElseIf Instr(ua, "Opera/2") Then
      bwsrVer = 2
    End If
  ElseIf InStr(ua, "HTTrack") Then
    bwsrType = "HTTrack"
    bwsrOS = "CRAWLER"
  ElseIf Instr(ua, "Mozilla") And Instr(ua, "compatible",1) Then
    bwsrType = "NS_COMPAT"
  ElseIf Instr(ua, "LECodeChecker") Then
    bwsrType = "LECodeChecker"
  ElseIf Instr(ua, "iefck") Then
    bwsrType = "iefck"
  ElseIf InStr(ua, "Ariadna") Then
    bwsrType = "Ariadna"
  ElseIf Instr(ua, "LWP") Then
    bwsrType = "LWP"
    bwsrOS = "PERL"
  ElseIf InStr(ua, "WebReaper") Then
    bwsrType = "WebReaper"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Mata Hari") Then
    bwsrType = "Mata Hari"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "DISCo Pump") Then
    bwsrType = "DISCo Pump"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "LinkSweeper") Then
    bwsrType = "LinkSweeper"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "WebCapture") Then
    bwsrType = "WebCapture"
  ElseIf InStr(ua, "EZResult") Then
    bwsrType = "EZResult"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "SearchExpress") Then
    bwsrType = "SearchExpress"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "MuscatFerret") Then
    bwsrType = "MuscatFerret"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "ArchitextSpider") Then
    bwsrType = "ArchitextSpider"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "T-H-U-N-D-E-R-S-T-O-N-E") Then
    bwsrType = "ThunderStone"
    bwsrOS = "CRAWLER"
  ElseIf ua="" And LCase(Request.ServerVariables("HTTP_REFERER")) = "
http://www.netcraft.com/
" Then
    bwsrType = "NetCraft"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "AnswerChase") Then
    bwsrType = "AnswerChase"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "InfoSeek") Then
    bwsrType = "InfoSeek"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "perl",1) Then
    bwsrType = "perl"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Lycos") Then
    bwsrType = "Lycos"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Mercator") Then
    bwsrType = "Mercator"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "NetMind") Then
    bwsrType = "NetMind"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "LinkScan") Then
    bwsrType = "LinkScan"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "PerMan") Then
    bwsrType = "PerMan"
  ElseIf InStr(ua, "BorderManager") Then
    bwsrType = "BorderManager"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Powermarks") Then
    bwsrType = "Powermarks"
  ElseIf InStr(ua, "Offline Explorer") Then
    bwsrType = "OfflineExplorer"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "RepoMonkey") Then
    bwsrType = "RepoMonkey"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "inktomi") Then
    bwsrType = "Inktomi"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Teleport") Then
    bwsrType = "Teleport"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Enfish") Then
    bwsrType = "Enfish"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "WebZIP") Then
    bwsrType = "WebZIP"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Gulliver") Then
    bwsrType = "Gulliver"
    bwsrOS = "CRAWLER"
  ElseIf InStr(ua, "Harvest") Then
    bwsrType = "Harvest"
    bwsrOS = "CRAWLER"
  ElseIf InStr(LCase(ua), "bot") Then
    bwsrType = "UNKNOWN_BOT"
    bwsrOS = "CRAWLER"
  ElseIf InStr(LCase(ua), "spider") Then
    bwsrType = "UNKNOWN_BOT"
    bwsrOS = "CRAWLER"
  ElseIf Instr(ua, "Microsoft URL Control") Then
    bwsrType = "MSURL"
  ElseIf Instr(ua, "FrontPage") Then
    bwsrType = "FrontPage"
  ElseIf InStr(ua, "DevPower Button Bar ActiveX Control") Then
    bwsrType = "DPBB"
  ElseIf Instr(1,Request.ServerVariables("HTTP_ACCEPT"),"text/vnd.wap.wml") > 0 Then
    bwsrType = Left(ua,50)
    bwsrOS = "WAP"
  Else
    ' Unknown Browser
    bwsrType = Left(ua,50)
  End If
  If bwsrName <> "NA" Then bwsrType = bwsrName & bwsrVer
  bwsrCompatType = bwsrType
  If bwsrVer <> "NA" Then If bwsrName = "IE" and bwsrVer > 4 Then bwsrCompatType = "IE4"
  ' Determine if Beta
  bwsrBeta = False
  SC1 = Instr(ua, ";")
  SC2 = Instr(SC1 + 1, ua, ";")
  MB = Instr(SC1 + 1, ua, "b")
  MP = Instr(SC1 + 1, ua, "p")
  If (bwsrName = "IE" And ((MB > SC1 And MB < SC2) Or (MP > SC1 And MP < SC2))) Or _
     (bwsrName = "NS" And Instr(ua, "b") < SC1) Or _
     (bwsrName = "OPERA" And Instr(ua, "b") < SC1) Then bwsrBeta = True
  ' Determine the OS
  If InStr(ua, "Windows 95") Or InStr(ua, "Win95") Then
    bwsrOS = "WIN95"
  ElseIf InStr(ua, "Windows 98") Or InStr(ua, "Win98") Then
    bwsrOS = "WIN98"
  ElseIf InStr(ua, "NT 5.0") Or InStr(os, "NT 5.0") Then
    bwsrOS = "WIN2K"
  ElseIf InStr(ua, "NT 5.1") Or InStr(os, "NT 5.1") Then
    bwsrOS = "WINXP"
  ElseIf InStr(ua, "NT") Or InStr(os, "NT") Then
    bwsrOS = "WINNT"
  ElseIf InStr(ua, "Windows CE") Or InStr(os, "CE") Then
    bwsrOS = "WINCE"
  ElseIf InStr(ua, "Windows 3.1") Or InStr(os, "Win16") Then
    bwsrOS = "WIN16"
  ElseIf InStr(os, "Win32") Then
    bwsrOS = "WIN32"
  ElseIf InStr(ua, "Mac") Then
    If InStr(ua, "PowerPC") Or InStr(ua, "PPC") Then
      bwsrOS = "MAC_PPC"
    ElseIf InStr(ua, "68000") Or InStr(ua, "68K") Then
      bwsrOS = "MAC_68K"
    End If
  ElseIf InStr(ua, "X11") Then
    bwsrOS = "UNIX"
  End If
%>

 con tanto di utente e password ...
[cut]
credo che il comportamento in caso di errori non gestiti dipenda dalle
configurazioni del Web Server; solitamente viene mostrata la riga che ha
prodotto l'errore, il numero di riga, e la descrizione... ma è possibile
impostare qualunque comportamento, in questi casi  :)
cmq direi che la 'colpa' è dell'amministratore del server, non tanto del
programmatore (sempre che non sia la stessa persona  :P)
Ciao
Faber

 wrote in message
9ino8t$jmuv1$1...@ID-56381.news.dfncis.de...


Ricordo che un paio d'anni fa bstava mettere un punto (.) alla fine
dell'indirizzo per tirare giù il codice della pagina, con tanto di username,
password e percorsi.
Forse era dovuto alle precedenti versioni dei browser o dei server
installati.
Mah!

con tanto di utente e password ...
Forse il subject si potrebbe tradurre in "cose succede se si imposta il flag 'Allow viewing source'
sul webserver"... :-PPP
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.msvbsite.net
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.it-lang-vb.net
---------------------------------------------------------------------------


Era un bug di IIS 4.0, che ho avuto modo di verificare anche in una azienda
dove sono stato: mi sono scaricato un po' di sorgentini (nulla di eccezionale,
purtroppo, erano di qualcuno che si era appena letto il libro su interdev :( 
ciao, hal

impostare qualunque comportamento, in questi casi  :)
Penso che un bel On Error Resume Next avrebbe risparmiato
la figuraccia al programmatore :-P
Mi sono trovato il dettaglio dell' errore: nome file, riga ecc.
Per sua sfortuna il file aveva estensione .inc, sicche' ne ho
scritto l' indirizzo completo sul browser  ... et voila' !
Letto come un qualsiasi file .txt.
ciao, hal


scritto l' indirizzo completo sul browser  ... et voila' !
tch tch tch... la prima cosa che insegna il manuale di PHP sui file .inc
è di mappare l'estensione .inc come script PHP...
-- 
Posted from 
mx1.aruba.it
 [62.149.128.130] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 è di mappare l'estensione .inc come script PHP...
tsk.. io lo faccio pure con i files ASP
mai un file .INC
cmq sono convinto che dipenda dal server web.
l'altro giorno ho messo un file asp rinominato in .TXT sul server
web e me l'ha processato come fosse un .ASP
non mi era mai capitato prima, anzi utilizzavo questa pratica per avere
una copia del codice leggibile all'utente. avranno toccato qualcosa ed
ora viene processato dal server web e ne restituisce l'output anziche'
il source. bah.. :\
--
Fibia "Sakamoto" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #25 delle Mitiche Brigate Takahashi sezione Sud