Sicurezza: strategie di prevenzione attraverso lo scripting attacco



SQL Injection vulnerabilità della rete tramite attacco, lo script JS, HTML scripting attacchi sembrano giocare su più forte. Uno dopo l'altro dei tanti siti sono afflitti da tali attacchi, non amava le vulnerabilità host può essere riparato subito, il attack dal web in modo da per la prevenzione o repair che porta un sacco di disagi. Un webmaster è il più doloroso questo. Quanto è forte la tua password per l'attaccante è sempre stato disponibile, ma come possiamo raggiungere la sicurezza real? Primo luogo, non la password e il link tua vita in secondo luogo, il SUPERMASTER PWD solo tu conosci meglio in terzo luogo, assolutamente necessaria per migliorare il vostro programma di Web site. Ma come possiamo migliorare, sarà il nostro obiettivo finale di questo articolo.

Sicurezza, come fare la sicurezza? Protezione Want è necessario sapere come attaccare l'altro. Molti articoli sono scritti per catturare un particolare sito, infatti, il modo dei loro attacchi, ma anche quanto segue:

1. Attacco di scripting semplice

Tali attacchi dovrebbero guaio è noioso. Ad esempio ****: alert (), così, a causa di un filtro non è vicino a ciò che l'attaccante non solo disponibile, ma può essere dannoso per lo scopo. Molti siti di servizio presenti gratuito o un programma sul proprio sito non è strettamente un problema di filtrazione.

2. Pericolosi attacchi di scripting

Tali attacchi sono stati allo script può rubare l'amministratore o informazioni di altri utenti sulla misura. Per esempio sappiamo tutti, rubare i cookie, utilizzare lo script sul client locale scrivere di più.

3. Sfrutta Sql Injection

Si può dire che questo attacco è di partire da Dongwangluntan e BBSXP. Filtering utilizza SQL caratteri speciali non sono stretti, e attacchi di cross-query di database. Per esempio:

http://127.0.0.1/forum/showuser.asp?id=999 e 1 = 1

http://127.0.0.1/forum/showuser.asp?id=999 e 1 = 2

http://127.0.0.1/forum/showuser.asp?id=999 e 0 (select count (*) da admin)

http://127.0.0.1/forum/showuser.asp?id=999 '; dichiarare una serie sysname @ @ a =' xp_ '+

exec 'Cmdshell' @ un 'aiuto :'---& dir c = 9

Ottenere la password di amministratore ha il controllo significa the intera stazione non deve essere l'host di privilegi, ma anche per questo passaggio per fare un sacco di prefigurazione. SQL Injection attacchi simili per i modi ei mezzi molti filtri diversi file non è tenuto a chiudere la query in modo diverso. Quindi, per fare un filtro completo di caratteri in cui le procedure non sono lo sforzo successivo è impossibile.

Attacchi di iniezione 4. Remoto

Filtro di un sito chiamato la pagina di modulo per la presentazione è un semplice JS filtraggio. Per l'utente medio, non è necessario prevenire, l'attacco premeditato riguarda, sembrano non essere un tale effetto di filtraggio. Spesso si dice che l'attacco POST è un esempio. Inserito da attacchi remoti informazioni illecite al fine di raggiungere lo scopo.

Attraverso la descrizione di sopra dei metodi di attacco, che generalmente intendiamo il modo in attacco dell'attaccante, abbiamo cominciato a concentrarsi sui seguenti viene descritto come impedire efficacemente gli attacchi di scripting!

Allora si parte dalle più semplici:

Contro gli attacchi di script

gli script JS HTML e script nella prevenzione degli attacchi è molto semplice: Server.HTMLEncode (Str) bin. Certo che non piangere, come potrebbe essere? Per avermi alla stazione non mi piacciono tutti a filter esaurito? Al fine di facilitare il filtraggio, abbiamo solo bisogno di scripts HTML e script JS per filtrare alcuni personaggi chiave può essere : il corpo procedura (1) come segue:

'La seguente è una funzione di filtro

'I seguenti sono esempi di applicazione

Username = CHK (replace (Request ("nome utente "),"'",""))

Includere la funzione scritta usando la pagina pubblico, così l'efficienza è il migliore.

Procedura corpo (1)

Inoltre, vale la pena la nostra attenzione è che molti utenti del sito per la registrazione o per un utente e la modifica della pagina Shangye Queshaojiaoben di filtraggio, o uno solo in uno filtrare le informazioni Zhucejinru può ancora essere effettuata dopo la modifica di scripting attacchi. I dati presentati da un utente per rilevare e filtrare, il corpo del programma (2) come segue:

'La seguente è una funzione di filtro

Se Instr (richiesta ("username "),"=") 0 o

Instr (richiesta ("username "),"%") 0 o

Instr (richiesta ("username"), chr (32)) 0 o

Instr (richiesta ("username "),"?") 0 o

Instr (richiesta ("username "),"&") 0 o

Instr (richiesta ("username "),";") 0 o

Instr (richiesta ("username "),",") 0 o

Instr (richiesta ("username "),"'") 0 o

Instr (richiesta ("username "),"?") 0 o

Instr (richiesta ("username"), chr (34)) 0 o

Instr (richiesta ("username"), chr (9)) 0 o

Instr (richiesta ("username"), "") 0 o

Instr (richiesta ("username "),"$") 0 o

Instr (richiesta ("username ")," ") 0 o

Instr (richiesta ("username ")," ") 0 o

Instr (richiesta ("username "),"""") 0 allora

Response.Write "amico, il tuo nome utente contiene caratteri non validi, il cambiamento, grazie al ritorno"

Response.End

End If

Procedura corpo (2)

Al fine di fornire il rendimento che cerchiamo di filtrare ulteriormente i contenuti delle procedure, così l'efficienza di filtrazione dei vari parametri sarà ampiamente aumentata: come il corpo del programma (3)

'A seguito del programma principale

dim Bword (18)

Bword (0 )="?"

Bword (1 )=";"

Bword (2 )=" "

Bword (3 )=" "

Bword (4 )="-"

Bword (5 )="'"

Bword (6 )=""""

Bword (7 )="&"

Bword (8 )="%"

Bword (9 )="$"

Bword (10 )="'"

Bword (11 )=":"

Bword (12 )="|"

Bword (13 )="("

Bword (14 )=")"

Bword (15 )="--"

Bword (16) = "chr (9)"

Bword (17) = "chr (34)"

Bword (18) = "chr (32)"

ERRC = false

'I seguenti sono alcuni esempi di applicazione

per i = 0 a UBound (Bword)

If InStr (FQYs, Bword (i)) 0 allora

ERRC = true

End If

prossimo

se poi ERRC

Response.Write ""

Response.End

End If

Procedura corpo (3)

Con la funzione di filtro sopra che è possibile inserire l'applicazione di eventuali necessità di filtrare funzione di filtro direttamente su di esso. Questo ci porta al ripristino di lavoro decisamente semplificata.

Inoltre, più di quanto io vorrei ricordare ancora una volta, uno numero limitato di siti durante l'expression di icona UBB verrà visualizzato quando la questione trasformazione filter, dato che era nascosto non è facile da trovare:

Come ad esempio:

Noi modificare le etichette di testo,

Non sapeva capire, prima di una quotazione unica e procedure previste dal the virgoletta sinistra, tra virgolette uso singola in the secondo e ha chiuso il marchio diritto virgolette, così il processo di uscita as:

Se l'immagine non esiste, quindi il tag si attiva onerror esecuzione di script. Per le virgolette sono stati il filtraggio dei siti, come qui, completo di virgolette doppie. **** Per il campo filtrato, e solo alert () anche può. Così che il filtraggio è necessario per filtrare completamente, non danno l'attaccante la possibilità di lasciare una traccia.

Prevenire sfrutta SQL Injection

Si può dire qui sembra essere al centro di tutto l'articolo. Vulnerabilità di SQL Injection sulla diversificazione rende il processo di protezione dobbiamo pensare su ancora un po '. SQL Injection di fronte a forti "offensiva", quello che alla fine del filtro?

Il rischio di alcuni caratteri comunemente usati sono

'Campi di database distinguere chiuso

- Mark alcuni dei annotazione database

# Alcune annotazioni database segni

"Può portare a errori,

Cross directory

carattere 3221143836nicode codifica caratteristiche

$ Può essere utilizzato per l'etichetta variabile

/ E lo stesso

NULL attento voce "vuota il rischio di trattamento può portare al database o sistema di errore, errore di overflow utilizzare la struttura.

Spazi e 'insieme, costruire injeciton sql

= & Se il secondo parametro può essere riscritto querystr.

(1) dal più generale. Exploit di SQL Injection di vista: nome utente e password sui problemi di filtraggio, come ad esempio:

Inviato il: username: 'o''=' password di utente: 'o''='

A partire dal processo, si può venire a, il database seguente

Sql = "SELECT bin conf di backup dei dati di configurazione generate.sh eshow_sitemap.html log maint sitemap.html svn LUSERS FROM WHERE Username = tmp o''=''''e''Password = o''=''"

In questo modo, così, SQL server restituirà tutti i record LUSERS tavolo, mentre lo script ASP sarà scambiato per un utente malintenzionato di entrare in un LUSERS il primo record nella tabella, che permette all'attaccante di il nome di login dell'utente sito web. Sembra evitare questo tipo di iniezione è molto semplice:

Utilizzare la seguente procedura può essere raggiunto, il corpo del programma (4)

strUserName = Replace (Request.Form ("username"), "''", "''''")

strPassword = Replace (Request.Form ("Password"), "''", "''''")

Procedura corpo (4)

(2) per prevenire gli attacchi SQL injection, il primo passo è quello di utilizzare una varietà di mezzi di controllo di sicurezza dall'oggetto richiesta ASP (Reques, Request.QueryString, Request.Form, Request.Cookies e Request.ServerVariables) l'input dell'utente, per garantire che il comando SQL affidabilità. Specifiche misure di sicurezza variano in base ai DBMS.

attacchi di SQL injection può danneggiare l'ambiente dipende dal software del sito e la configurazione. Quando il server Web al gestore (dbo) del l'identità per accedere al database, SQL injection attack using, che potrebbe rimuovere tutte le forme, creano nuove forme, tra altri. Quando il server di super utente (SA) per accedere al database di identità, con attacco SQL injection, che potrebbe controllare l'intero server SQL, in alcune configurazioni, un attaccante che può anche creare il proprio account utente di modificare completamente il database si trova nel server di Windows.

Come ad esempio:

http://127.0.0.1/forum/showuser.asp?id=999 '; dichiarare una serie sysname @ @ a =' xp_ '+

exec 'Cmdshell' @ un 'aiuto :'--& dir c = 9

http://127.0.0.1/forum/showuser.asp?id=999 '; dichiarare una serie sysname @ @ a + =' xp '

'_cm' + 'Dshell' exec @ a 'dir c :'--& aiuto = 9

Può anche svolgere come: net user fqy fqy / aggiungere questo comando. Naturalmente questo richiede l'esecuzione dello stato attuale deve essere Sa, o che attaccano solo un host virtuale, vi consiglio di fermarsi qui.

Per alcuni siti usati per la macchina per evitare un attacco diretto da 80 per ottenere l'Autorità Portuale di gestione della macchina, è diventato essenziale. Filtro sulla xp_cmdshell diventare il primario, molti siti sono using le procedure GET o POST and GET trasmissione dei dati contenuti misti, e per questo abbiamo give un modo per impedire procedura di iniezione SQL GET comportamento: come Body program (5)

fqys = Request.ServerVariables ("QUERY_STRING")

nothis dim (18)

nothis (0) = "net user"

nothis (1) = "xp_cmdshell"

nothis (2) = "/ add"

nothis (3) = "% 20master.dbo.xp_cmdshell exec"

nothis (4) = "amministratori localgroup netto"

nothis (5) = "selezionare"

nothis (6) = "count"

nothis (7) = "ASC"

nothis (8) = "char"

nothis (9) = "a metà"

nothis (10 )="'"

nothis (11 )=":"

nothis (12 )=""""

nothis (13) = "inserire"

nothis (14) = "delete"

nothis (15) = "drop"

nothis (16) = "troncare"

nothis (17) = "da"

nothis (18 )="%"

ERRC = false

per i = 0 a UBound (nothis)

If InStr (FQYs, nothis (i)) 0 allora

ERRC = true

End If

prossimo

se poi ERRC

Response.Write ""

Response.End

End If

Procedura corpo (5)

Voglio punto l'affermazione è: La procedura sopra è un metodo GET sui dati presentati dal filtro, non si applicano ciecamente.

Come gli altri oggetti dalla richiesta ASP (Reques, Request.QueryString, Request.Form, Request.Cookies e Request.ServerVariables) metodo di attacco dei metodi di input da parte dell'utente, in gran parte concentrati nella variabile script è il numero atteso di ingresso variabile (ID ), ovviamente, non possiamo limitarci a guardare il numero di variabili, quali:

http://127.0.0.1/systembbs/showtopic.asp?tid=99&name=abc 'e di sinistra (userpasswor

d, 1) = 'a

http://127.0.0.1/systembbs/addtopic.asp?tid=99&name=abc 'e userpasswor

d = 'o''='

In più, come una singola iniezione per evitare errori come questo?

http://127.0.0.1/systembbs/addtopic.asp?tid=99 '; forum_forum eliminare - & pagina = 33

Programma di prevenzione: il corpo del programma (6)

...... Addtopic.asp? Action = aggiungere ......

...... Addtopic.asp? Action = Delect ......

Azione 1 = Trim (Request.QueryString ())

se a sinistra (Azione 1, 7) "action =" quindi 'deve essere limitata a un'azione querystring =

errore (err01) 'la gestione degli errori

altro

azione = Request.QueryString ("azione") 'avere valore di QueryString

End If

Seleziona azione caso 'a negoziare per la querystring

caso "add"

.....

caso "delete"

......

Case Else 'Se la querystring non è questo il valore per la gestione degli errori

errore (err02)

fine selezionare

Procedura corpo (6)

Un tale attacco si verifica, affinché il nostro webmaster dispongono un mal di testa again, qui posso darvi una soluzione al modo migliore, in Generalmente la lunghezza user name, numero di caratteri non superi 15 caratteri, la maggior parte dei 14 personaggi . Poi si passa dalla lunghezza di filtro: se il corpo del programma (7)

Nome = replace (,"'","") nome

Se len (nome) 16 allora

Response.Write "Tu cosa?"

Response.End

End If

Procedura corpo (7)

Perché siamo qui e il filtraggio dei marchi virgolette singole, come dovrebbe organizzarsi una volta uno limite di lunghezza? Little said per vedere article 4ngel primo harrying'restrictions continua injection . Do non chiedetemi come passare al formato digitale, non lo farò, ...^_^! hehe

Ha inoltre continuato a tornare al nostro tema, "il copione atteso numero di variabili input è la variabile (ID)". Come da trasportare negli prevention, accidenti, come troppi, il più diretto è di determinare se il numero intero digital, ci verificare alcune delle approccio più personalizzato, si introduce uno per uno, come ad esempio: il corpo del programma (8)

In primo luogo, stabilire se il numero è intero

p_lngID = CLng (Request ("ID"))

In secondo luogo, assumere questo credo che la lunghezza di parola dei dati di lunghezza non superiore a 8 bit così:

If Len (ID) 8 allora

Response.Write "asse del letto"

risposta finale

End If

3 Io penso che questo sia un modo più rischioso è quello di condurre una query di database, se la tabella di database con lo stesso valore non è la stessa che restituisce un errore.

sql = "SELECT NOME FROM Rubrica WHERE id =" & ID

set temp = conn.Execute (SQL)

se temp.bof o poi temp.eof

Response.Redirect ("index.asp")

altro

Cat_name = temp ("nome")

End If

SET TEMP = niente

'Quanto sopra è l'ID dei dati del test, il seguente è l'indagine formale

sql = "SELECT ID T_ID, NOME DA categoria dove ID =" & ID & "ORDER BY asc xh"

rs.open sql, conn, 1,1

In quarto luogo, ho usato gli script di filtrare i dati, brevetti, oh ~

id = replace (id ,"'","")

Se len (richiesta ("id")) 8 e poi 'Perché ha scelto la lunghezza delle procedure di cui sopra hanno dimostrato

Response.Write ""

Response.End

altro

Se la richiesta ("id ") "" poi 'prendere non è vuota è il numero di procedure per prevenire i valori null compariranno nella pagina, e se non lo faremo qui a giudicare, il programma verificherà un errore.

Se IsNumeric (richiesta ("id")) = False e poi 'Feng Qingyang ID modificare i dati di monitoraggio del programma

Response.Write ""

Response.End

End If

End If

End If

Procedura corpo (8)

Come le mie abitudini di programmazione, io come tutte le procedure di controllo dei dati sono state mantenute a programmi pubblici l'intera stazione, quali: la materia conn.asp, basta scrivere la stazione intero could be once ripristinato il problema.

Ecco, io dire qualcosa circa il problema di attacco è quello di eseguire la password utente o il nome utente, comunemente utilizzata è

...... / Show.asp? Id = 1 e 0 (select count (*) da admin dove id = 3 e sinistra (nome utente 1) = 'a')

In questo modo, uno per uno provare, of course, noi non ricordiamo qui quale programma to run codice Perl, le procedure sono persone other scrivere, it has a conoscere the principle. Qui mi volete designare uno modo più conveniente è quello di prendere the portata of code ASC. Questo than corre tutto solo di essere molto più veloce. se le lettere, numeri, caratteri, caratteri speciali, essi hanno sempre il codice corrispondente ASC, utilizzare i seguenti metodi:

...... / Show.asp? Id = 1 e 0 (select count (*) da admin dove id = 3 e ASC (a destra (a sinistra (nome utente

e, 3), 1)) tra 1 e 10000) con te sul resto del generale 97-122 possono essere amici, lettere Bene, presto D. Ah, certo, qualcuno vuole usare la funzione Mid è anche un bene asc ( mid (nome utente, 2,1)) tra il 1 e 10000 sono diventati.

Quanto più efficaci per prevenire attacchi di SQL injection? Noi menzionano specificamente il seguente articolo!

gli attacchi contro di iniezione a distanza

Tali attacchi in passato dovrebbe essere uno dei metodi attack more comuni, come attacco POST, un aggressore può facilmente modificare il valore di dati da trasmettere allo scopo è stato quello di attaccare. Un altro esempio: COOKIES forgiato, merita anche il programmatore o station lunga nota, non utilizza i cookie per fare per il metodo di autenticazione utente, o voi e il ladro lasciato la chiave è la stessa ragione.

Per esempio:

Se trim (cookies Request. ("fqy "))=" uname" e Request.Cookies ("upwd")

= "E3i5.com Fqy #" poi

Più ........ .........

End If

Vorrei che ai programmi di scrivere come webmaster o amici non commettere errori tale, è davvero imperdonabile. Contraffatti COOKIES sono molti anni da adesso, non si può incolpare altre persone usano questo per eseguire la tua password. Relativa password utente o un account di accesso utente, è meglio use the sessione it è il più sicuro. Se si desidera utilizzare nel COOKIES COOKIES aggiungere un messaggio, SessionID, che è a 64 bit di valore casuale, la soluzione a indovinare, non è possibile . Esempio:

se non (o rs.BOF rs.eof), quindi

login = "true"

Session ("username" e sessionID) = Username

Session ("password" & sessionID) = Password

'Response.Cookies ("username") = nome utente

'Response.Cookies ("Password") = Password

Parliamo di come prevenire gli attacchi di iniezione a distanza, gli attacchi sono in genere di deposito a fogli singoli sul locale, il form action = "" chk.asp scegliere il server in grado di elaborare file di dati. Se tutti il filtraggio dei dati in una pagina sola forma, poi congratulo con lei, dovrete essere attacchi di script.

Come possiamo fermare un attacco così remota? Facile da maneggiare, vedere il codice qui sotto: corpo procedura (9)

'Personale senso del codice precedente di filtraggio non è molto buona, ci sono alcune external ed era orgogliosa di presentare, poi scriverne uno.

'Questo è il filtro funziona bene, consigliato.

If InStr (Request.ServerVariables ("HTTP_REFERER"), "http://" & Request.ServerVariables ("host")) 1 allora

response.write "errore del server durante l'elaborazione dell'URL.

Se si utilizza qualsiasi mezzo per attaccare il server, dovresti essere felice, per your server, tutte le operazioni sono state registrate, we will prima informare l'opinione pubblica sicurezza Bureau and department la sicurezza national per indagare il tuo IP. "

Response.End

End If

Procedura corpo (9)

Ho pensato che tutto andrà bene, nella pagina sotto forma con l'aggiunta di alcuni vincoli, such come amici maxlength, ecc .. ma Dio is così Buzuo Mei, è sempre più paura di what era. Non si dimentichi, uno attaccante può rompere through injection sql attacco, limitare la lunghezza della casella di input. PRESA scrivere una procedura per cambiare HTTP_REFERER? non lo farò. Online ha pubblicato un articolo:

------------ Len. Reg -----------------

Windows Registry Editor Version 5,00

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt estesa (& E)]

@ = "C: Documents and SettingsAdministrator len.htm Desktop"

"Contesti" = dword: 00000004

----------- Fine ----------------------

----------- Len. ------------------ Htm

---------- Fine -----------------------

Uso: len.reg la prima volta nel Registro di sistema (notare il percorso del file)

E poi copiandolo in len.htm luogo specificato nel registro.

Aprire la pagina Web, il cursore sulla casella di input per modificare la lunghezza del tasto destro del mouse per vedere più di una opzione call per la corretta estensione

Clicca qui per ottenere! Postscript: Le stesse restrizioni anche in grado di affrontare gli elementi di input script.

Come fare? Il nostro limite è stato risparmiato e tutti gli sforzi sono stati vani? Not, sollevare la tastiera de, dire di no. Cerchiamo di continuare a filtrare di nuovo ai caratteri script, non erano nulla più che ad attacchi di iniezione script. Noi tutti utilizzare tutte le pagine azione per l'energia dopo che, nella pagina chk.asp, saremo filtrare tutti i caratteri non validi, il risultato? Abbiamo girato solo finta davanti e disse loro di modificare il Registro di sistema, quando Essi troveranno cambiamento totale, lo stanno facendo invano.

ASP Trojan

È stato menzionato qui, a ricordare un forum di webmaster, fai attenzione di caricamento del file: Perché è stato rotto dopo che il programma del Forum ospiterà anche un utente malintenzionato di prendere. Motivo per cui a destra ......! ASP trojan! Una cosa assolutamente abominevole. Che virus? Assolutamente no. Facilmente i file nel vostro programma di forum, andare a trovare il vecchio. Oh no ematemesi strano. Come impedire ASP Trojan è stato caricato sul server? Metodo è semplice, se il vostro forum per sostenere upload di file, è possibile impostare il formato del file che si desidera caricare, io non uso è possibile modificare il formato di file, direttamente dalla procedura bloccato, solo il formato file di immagine e file compressi possono essere completamente più conveniente di lasciare la propria anche più comodo per lasciare l'attaccante. Come giudicare il formato, ho qui una raccolta, ha cambiato anche una, si può guardare: Il corpo procedura (10)

'Determinare il tipo di file è qualificato

Private Function CheckFileExt (fileEXT)

dim Forumupload

Forumupload = "gif, jpg, bmp, jpeg"

Forumupload = split (Forumupload ,",")

per i = 0 a UBound (Forumupload)

se LCase (fileEXT) = LCase (trim (Forumupload (i))) allora

= True CheckFileExt

Funzione di uscita

altro

CheckFileExt = false

End If

prossimo

End Function

'Verificare la legittimità del documento

set MyFile = Server.CreateObject ("Scripting.FileSystemObject")

set MyText = MyFile.OpenTextFile (sFile, 1) 'leggere un file di testo

sTextAll = LCase (MyText.ReadAll): MyText.close

'Determinare il rischio di operazioni sui file che l'utente

| Getfolder SSTR = "8 |.. | CreateFolder. | DeleteFolder. | CreateDirectory

. Deletedirectory "

SSTR = SSTR & "|. SaveAs | WScript.Shell | script.encode"

sNoString = split (SSTR ,"|")

per i = 1 a sNoString (0)

If InStr (sTextAll, sNoString (i)) 0 allora

sFile = Upl.Path & sFileSave: sFile fs.DeleteFile

Response.Write "

"& & SFileSave" documenti e la gestione di directory contenenti i relativi ordini "& _

"

"& Mid (sNoString (i), 2) &", per ragioni di sicurezza, non può caricare. "& _

"

"

Response.End

End If

prossimo

Procedura corpo (10)

Aggiungi per caricare il tuo loro procedure a fare una validazione, quindi la sicurezza del vostro processo di upload sarà notevolmente rafforzata.

Cosa? Tu non ti preoccupare? Out killer, chiedete al vostro fornitore di hosting per aiutarlo. Accesso al server, il PROG ID nella "shell.application" elementi e "shell.application.1 voce" rinominato o eliminato. Poi "WScript.Shell" prodotti e "WSCRIPT.SHELL.1" Questi due dovrebbero essere rinominati o cancellati. Oh, oserei dire, più della metà della Cina non può essere riabilitazione l'host virtuale. Fortunatamente, gli utenti possono molto cooperativa, altrimenti ...... Io eliminare, a eliminare, cancellare cancellare cancellare la mia ......

Riassunto

Come migliore per prevenire attacchi di SQL Injection? Eccomi qui a raccomandare diversi modi, in primo luogo, i programmi gratuiti non hanno davvero l'uso gratuito, dal momento che è possibile condividere il codice originale, poi l'attaccante in grado di analizzare lo stesso codice. Se i proprietari hanno la capacità di cambiare ciò che è più bei nomi tabella di database, i nomi di field, soltanto modificare la key admin, username, password on di essa, come forum_upasswd this campo che può indovinare il nome? Se indovinato, il più lotteria buon acquisto in tempi brevi, un premio superiore non ti allora chi? Inoltre, la chiave sta nella password l'amministratore del sito generale, ben proteggere la tua password di amministratore che è cruciale, almeno 10 il numero di combinazioni di lettere. Un altro vantaggio è che la maggior parte dei siti utilizza MD5 per crittografare il programma la password utente, più il vostro robustezza password, quindi la sicurezza del tuo sito su l'notevolmente aumentato. Se c'è una vulnerabilità di SQL Injection, un attaccante non può vincere il sito immediatamente.