Oggi mi sono reso conto che cercando di inviare una grande quantità di dati da un modulo ad esempio una textarea ad una pagina Classic ASP se si supera il limite di 102.399 bytes Si genera un eccezione nella riga in cui viene effettuato il recupero con l'istruzione Request.Form("NomeCampo") quindi per aggirare il problema ho scritto una classe che utilizza il sistema Request.BinaryRead che potete scaricare seguendo il link di seguito:
Per utilizzarlo mettetelo semplicemente in un file di inclusione (ad Esempio clsRequest.asp)
in modo che sia all'inizio della pagina in cui volete utilizzare la classe.
Set MyRequest = New clsRequest
MyRequest.Form("NomeCampo") 'Solo POST
MyRequest.QueryString("NomeCampo") 'Solo GET
MyRequest("NomeCampo") 'Sia GET Che POST (Con Precedenza di POST)= Se sono presenti due argomenti POST e GET con nome uguale Quello GET Verrà Scartato
Nella classe già che ero a programmare ho incluso due routine una serve per evitare SQL Injection ed esegue un controllo tramite Regular Expression
l'altra esegue il metodo Server.HtmlEncode in modo da restituire stringhe che non possano essere soggette a Cross Site Scripting, Tuttavia se dovesse rendersi necessario disattivare una delle due o anche tutte e due queste funzionalità ho previsto delle variabili pubbliche a cui basta semplicemente assegnare un bvalore true dopo aver inizializzato la classe. di seguito riporto l'esempio:
Set MyRequest = New clsRequest
MyRequest.DisableXSS = true 'Disabilita la Funzione che inibisce il Cross Site Scripting
MyRequest.DisableSQLI = true 'Disabilita il Controllo su SQL Injection
MyRequest.Form("NomeCampo") 'Solo POST
MyRequest.QueryString("NomeCampo") 'Solo GET
Spero questa classe possa essere d'aiuto a qualcuno. Se avete qualche problema fatemi sapere.
Nessun commento:
Posta un commento