Seguridad: las estrategias de prevención a través de secuencias de comandos de ataque



Vulnerabilidades de inyección SQL en la red usando ataque, script JS, HTML scripting ataques parecen jugar durante más de fuerte. Uno tras otro de los muchos sitios se ven afectadas por este tipo de ataques, como anfitrión 并非 Lou Xiu Dong Fu se convierte de inmediato, y desde la WEB de ataque a la mujer en la prevención Huozhe sí reparación Shang Du es un gran inconveniente. Un webmaster es el más doloroso. ¿Qué tan fuerte su contraseña para que el atacante siempre ha estado disponible, pero ¿cómo podemos lograr la seguridad real? En primer lugar, no contraseña y vincular su vida, en segundo lugar, las personas con discapacidad Supermaster sólo usted sabe mejor en tercer lugar, es absolutamente necesario para mejorar su programa de sitio Web. Pero, ¿cómo podemos mejorar, será nuestro objetivo final de este artículo.

De Seguridad, cómo hacer la seguridad? ¿Quieres protección es necesario conocer cómo se atacan mutuamente. Muchos artículos se escriben en la captura de un sitio en particular, de hecho, la forma de sus ataques, sino también las siguientes:

1. Scripting simple ataque

Estos ataques deberían problemas es aburrido. Por ejemplo ****: alert (), de modo que, a causa de un filtro no está cerca de lo que el atacante no sólo está disponible, pero puede ser perjudicial para el propósito. Muchos sitios de web de servicios actuales gratis, o programa en su propio sitio no es estrictamente un problema de filtración.

2. Peligrosas secuencias de comandos ataque

Estos ataques han sido más que la secuencia de comandos puede robar el administrador o información de otros usuarios sobre la medida. Por ejemplo todos sabemos, robar las cookies, utilice la secuencia de comandos en el cliente local escribir más.

3. Sql hazañas de inyección

Se puede decir que este ataque se iniciará a partir Dongwangluntan y BBSXP. Filtrar utilizando SQL caracteres especiales no están firmes, y ataques a través de base de datos de consulta. Por ejemplo:

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

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

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

http://127.0.0.1/forum/showuser.asp?id=999; declare @ un conjunto sysname @ a = 'xp_' +

exec 'Cmdshell' @ a 'dir c ayudas :'---& = 9

Obtener la contraseña de administrador tiene el control significa toda la estación no tiene por qué ser el anfitrión de los privilegios, pero también para este paso para hacer un montón de presagio. Inyección de SQL ataques similares a los modos y medios de filtro de archivo diferente muchas no se tiene que cerrar la consulta de diferentes maneras. Así que para hacer un filtro de carácter completo donde los procedimientos no son el próximo esfuerzo es imposible.

4. Remoto Ataques de Inyección

Filtro de un sitio llamado la página de formulario de envío es un simple filtrado de JS. Para el usuario promedio, no es necesario prevenir; del ataque premeditado se refiere, parece no ser un efecto de filtrado. A menudo decimos que el ataque POST es un ejemplo. Presentada por los ataques remotos información ilícita a fin de lograr el propósito.

A través de la descripción anterior de los métodos de ataque, por lo general, comprender la forma atacantes, la siguiente descripción nos centramos en el comienzo, la forma de prevenir eficazmente los ataques de scripting!

Así que empezamos desde la más sencilla:

Contra los ataques de script

scripts de JS y HTML prevención contra ataque de secuencias de comandos es muy simple: Server.HTMLEncode (Str) bin. Por supuesto que no lloran, ¿cómo podría ser eso? Por permitirme a la estación no me gusta de todos los complementos para filtrar agotado? A fin de facilitar el filtrado, sólo necesitamos a los scripts HTML y scripts de JS para filtrar algunos personajes clave se puede : el cuerpo del procedimiento (1) de la siguiente manera:

'Lo siguiente es una función de filtro

'Los siguientes son ejemplos de aplicación

Nombre de usuario = CHK (sustituir (Request ("nombre de usuario "),"'",""))

Incluya la función escrita utilizando la página pública, por lo que la eficiencia es el mejor.

Programa de cuerpo (a)

Además, merece nuestra atención, sí, muchos sitios el registro de usuario, Huozhe es modificar la página, la información del usuario es también una falta de secuencia de comandos de filtrado, o uno de los Qi filtro Zhong, modificar el registro Jinru Hou Gong Ji Zi script Liao todavía puede llevarse a cabo. Los datos presentados por el usuario para detectar y filtrar, el cuerpo del programa (2) de la siguiente manera:

'Lo siguiente es una función de filtro

Si Instr (Request ("nombre de usuario "),"=") 0 o

Instr (Request ("nombre de usuario "),"%") 0 o

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

Instr (Request ("nombre de usuario "),"?") 0 o

Instr (Request ("nombre de usuario "),"&") 0 o

Instr (Request ("nombre de usuario "),";") 0 o

Instr (Request ("nombre de usuario "),",") 0 o

Instr (Request ("nombre de usuario "),"'") 0 o

Instr (Request ("nombre de usuario "),"?") 0 o

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

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

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

Instr (Request ("nombre de usuario "),"$") 0 o

Instr (Request ("nombre de usuario ")," ") 0 o

Instr (Request ("nombre de usuario ")," ") 0 o

Instr (Request ("nombre de usuario "),"""") 0, entonces

response.write "amigo, para enviar su nombre de usuario contiene caracteres no permitidos, el cambio, gracias a regresar"

Response.End

end if

Procedimiento cuerpo (2)

Con el fin de facilitar la eficacia que busca filtrar aún más el contenido de los procedimientos, por lo que la eficacia de la filtración de los distintos parámetros se incrementado notablemente: por ejemplo, el cuerpo del programa (3)

«Tras el programa principal

Bword tenue (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

«Los siguientes son ejemplos de algunas aplicaciones

para i = 0 To UBound (Bword)

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

ERRC = true

end if

próximo

si luego ERRC

response.write ""

Response.End

end if

Procedimiento cuerpo (3)

Con la función de filtro por encima de que puede colocar en la aplicación de cualquier necesidad de filtrar función de filtro directamente sobre ella. Esto nos lleva a la restauración de obras tan simplificado.

Además, más de lo que yo quisiera recordar una vez más, un pequeño número de sitios en la expresión de la UBB icono aparecerá cuando el tema de transformación del filtro, ya que se oculta no es fácil de encontrar:

Tales como:

Modificamos las etiquetas de texto,

No sabía que entender, antes de una única oferta y los procedimientos previstos en la comilla izquierda, comillas simples utilizados en el segundo y cerró las comillas de cierre, para que el proceso de salida como:

Si la imagen no existe, entonces la etiqueta script se activará onerror aplicación. Para las comillas simples se han filtrado de sitios, como aquí, con comillas dobles. **** Para el campo filtrado, y sólo alert () también puede. Así que debemos filtro para filtrar por completo, no daría la oportunidad de dejar una huella.

Evitar la inyección de SQL explota

Se puede decir, aquí está todo el artículo parece centrarse a. vulnerabilidad de inyección SQL en la diversidad también nos obliga a la protección sobre el programa tuvo que pensar un poco más. Inyección de SQL en el rostro de fuerte "ofensiva", lo que en el extremo del filtro?

El riesgo de algunos caracteres de uso común tienen

Los campos de la base de datos distinguir cerrada

- Mark algunas de las anotaciones de base de datos

# Algunas señales de base de datos de anotación

"Puede llevar a error,

Cruz directorio

codificación de caracteres 3221143836nicode características

$ Se puede utilizar para la etiqueta variable

/ Y lo mismo

NULL cuidado "vacío" entrada en el riesgo del tratamiento puede llevar a la base de datos o error del sistema, errores de utilización desbordamiento estructura.

Espacios y "juntos, construir injeciton sql

= & Si el segundo parámetro puede ser reescrito querystr.

(1) desde lo más general. Inyección SQL hazañas de vista: nombre de usuario y contraseña en los problemas de filtrado, como por ejemplo:

Enviado: nombre de usuario: 'o''=' contraseña de usuario: 'o''='

A partir del proceso, podemos llegar a la base de datos siguientes

generate.sh sql = "SELECT de bin conf copia de seguridad de datos de configuración de registro eshow_sitemap.html maint sitemap.html svn lusers DESDE DONDE tmp =''Nombre de usuario o contraseña''='' y''= o''=''"

De esta manera, por lo que, el servidor SQL devolverá todos los registros de la tabla lusers, mientras que la secuencia de comandos ASP se confunde con un atacante a entrar en un lusers el primer registro en la tabla, lo que permite al atacante el nombre de conexión del usuario página web. Parece que para evitar este tipo de inyección es muy simple:

Utilice el siguiente procedimiento se puede lograr, el cuerpo del programa (4)

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

strPassword = Replace (Request.Form ("Contraseña"), "''", "''''")

Procedimiento cuerpo (4)

(2) para prevenir ataques de inyección SQL, el primer paso es usar una variedad de medios de control de seguridad del objeto de la petición ASP (solici, Request.QueryString, Request.Form, Request.Cookies y Request.ServerVariables) la entrada del usuario, para garantizar que el comando SQL fiabilidad. medidas de seguridad específicas varían en función de su DBMS.

ataques de inyección SQL puede causar daño al medio ambiente depende de software del sitio y la configuración. Cuando el servidor Web para el operador (dbo) de la identidad para acceder a la base de datos, utilizando un ataque de inyección SQL, que puede eliminar todas las formas, crear nuevas formas, y así sucesivamente. Cuando el servidor de superusuario (sa) la capacidad para acceder a la base de datos cuando, utilizando SQL 注入 ataques 式 en Keneng Kongzhizhengge SQL Fuwu Qi; Zai Mouxiepeizhi ataques Xia son incluso crear su propia cuenta de usuario con el fin de Wanquancaozong Shu Juku Suozai de Windows Fuwu Qi.

Tales como:

http://127.0.0.1/forum/showuser.asp?id=999; declare @ un conjunto sysname @ a = 'xp_' +

exec 'Cmdshell' @ a 'dir c ayudas :'--& = 9

http://127.0.0.1/forum/showuser.asp?id=999; declare @ un conjunto sysname + @ a = 'XP'

"_cm 'DSHELL' + 'exec @ un" dir c :'--& ayuda = 9

Incluso puede realizar como: net user fqy fqy / añadir este comando. Por supuesto, esto requiere que se ejecute la situación actual debe ser Sa, o atacar sólo una máquina virtual, yo le aconsejo que se detiene allí.

En algunos sitios de la máquina para usar el puerto 80 para evitar los ataques por la máquina directamente para obtener derechos de administrador, se convierte en esencial. Filtro en el xp_cmdshell convertido en el principal, muchos sitios están utilizando los procedimientos GET y POST o GET para enviar datos, mixtos, y para ello, le damos una forma de prevenir el procedimiento de inyección SQL GET conducta: como el cuerpo del programa (5)

Request.ServerVariables fqys = ("QUERY_STRING")

nothis tenue (18)

nothis (0) = "net user"

nothis (1) = "xp_cmdshell"

nothis (2) = "/ add"

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

nothis (4) = "Los administradores de red localgroup"

nothis (5) = "select"

nothis (6) = "número"

nothis (7) = "asc"

nothis (8) = "char"

nothis (9) = "mediados"

nothis (10 )="'"

nothis (11 )=":"

nothis (12 )=""""

nothis (13) = "insert"

nothis (14) = "borrar"

nothis (15) = "gota"

nothis (16) = "truncar"

nothis (17) = "desde"

nothis (18 )="%"

ERRC = false

para i = 0 To UBound (nothis)

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

ERRC = true

end if

próximo

si luego ERRC

response.write ""

Response.End

end if

Procedimiento cuerpo (5)

Quiero señalar la declaración es el siguiente: El procedimiento anterior es un método GET en los datos presentados por el filtro, no se aplican a ciegas.

Al igual que otros objetos de la petición ASP (solici, Request.QueryString, Request.Form, Request.Cookies y Request.ServerVariables) método de ataque de los métodos de entrada del usuario, en gran parte concentrada en la variable de secuencia de comandos es el número esperado de entrada variable (ID ), por supuesto, no podemos simplemente mirar las variables número, como por ejemplo:

http://127.0.0.1/systembbs/showtopic.asp?tid=99&name=abc y la izquierda (userpasswor

d, 1) = "un

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

d = 'o''='

Además, ¿cómo una sola inyección para evitar errores como este?

http://127.0.0.1/systembbs/addtopic.asp?tid=99; forum_forum eliminar, - & page = 33

Programa de prevención: el cuerpo del programa (6)

...... Addtopic.asp? Acción = añadir ......

...... Addtopic.asp? Acción = delect ......

Acción 1 = Trim (Request.QueryString ())

si la izquierda (Acción 1, 7) "action =" y luego "debe limitarse a la acción cadena de consulta =

error (err01) «control de errores

más

action = Request.QueryString ("acción") 'obtener el valor de cadena de consulta

end if

seleccione caso la acción para hacer frente a la cadena de consulta

caso "añadir"

.....

caso "borrar"

......

Case Else 'Si la cadena de consulta no es este valor el de control de errores

error (err02)

seleccione Fin

Procedimiento cuerpo (6)

Un ataque se produce, para que nuestros webmasters tienen un dolor de cabeza de nuevo, aquí te puedo dar una solución a la mejor manera, en general, la longitud de nombre de usuario, número de caracteres no exceda de 15 caracteres, la mayoría de los 14 personajes . Entonces partimos de la longitud de filtro: el cuerpo Si el programa (7)

Nombre = sustituir (,"'","") nombre

Si len (nombre) 16 entonces

Response.Write "Usted hacer qué?"

Response.End

End if

Procedimiento cuerpo (7)

¿Por qué estamos aquí y filtrado de las comillas sencillas, la forma en que debería volver a tener un límite de longitud? Little dijo que para ver el artículo 4ngel primera spared'limited injection a . No me preguntes cómo cambiar al formato digital, no lo haré, ...^_^! jeje

También siguieron regresando a nuestro tema, "el guión previsto en el número de variables de entrada es la variable (ID)". ¿Cómo llevar a la prevención, maldita sea, demasiados, el más directo es determinar si el entero digital, no verificar algunos de los enfoque más personalizado, se introduce una a una, como por ejemplo: el cuerpo del programa (8)

En primer lugar, determinar si el número es entero

p_lngID = CLng (Request ("ID"))

En segundo lugar, aprovechar esta creo que la longitud de la palabra de los datos de longitud no es superior a 8 bits así:

Si len (ID) 8 a continuación,

response.write "posición de la cama"

la respuesta final

end if

3 Creo que esta es una forma más arriesgada es realizar una consulta de base de datos, si la tabla de base de datos con el mismo valor no es la misma que devuelve un error.

sql = "SELECT NOMBRE DE Categoría WHERE id =" & ID

set temp = conn.Execute (SQL)

si temp.bof o temp.eof continuación,

Response.Redirect ("index.asp")

más

cat_name temp = ("nombre")

end if

set temp = nada

"Lo anterior es el ID de la prueba, la siguiente es la investigación formal

sql = "SELECT ID T_ID, NOMBRE DE Categoría WHERE id =" & ID & "ORDER BY asc xh"

rs.Open sql, conn, 1,1

En cuarto lugar, he usado los scripts filtrar los datos, las patentes, oh ~

id = Sustituir (id ,"'","")

Si len (Request ("id")) 8 a continuación, '¿Por qué elegir la duración de los procedimientos anteriores han demostrado

response.write ""

Response.End

más

Si la petición ("id ") "" luego 'tomar no está vacío es el número de procedimientos para impedir que los valores nulos se publicará en la página, y si no lo hacemos aquí para juzgar, el programa de verificación de un error.

Si IsNumeric (Request ("id")) = False Then 'Feng Qingyang modificar los datos de seguimiento de los programas de identificación

response.write ""

Response.End

end if

end if

end if

Procedimiento cuerpo (8)

Como mis hábitos de programación, me gustan todos los procedimientos de inspección de datos se mantuvieron impedir que el público de todo el proceso, tales como: la materia conn.asp, simplemente escriba la estación podría ser restaurada tan pronto como el problema.

Aquí menciono algo sobre el problema de ataque consiste en ejecutar la contraseña de usuario o nombre de usuario, de uso general es

...... / Show.asp? Id = 1 y 0 (select count (*) desde admin donde id = 3 e izquierdo (nombre de usuario, 1) = 'a')

De esta manera, uno por uno intenta, por supuesto, no podemos mencionar aquí cuál es el programa Perl para ejecutar la contraseña, el programa está escrito por otra persona, conocer los principios de su propia cuenta. Aquí, sólo quiero dar una forma más conveniente es tomar el ámbito de aplicación del código de ASC. Esto de correr solo a ser mucho más rápido. si las letras, números, caracteres, caracteres especiales, siempre tienen el correspondiente código de ASC, utilice los métodos siguientes:

...... / Show.asp? Id = 1 y 0 (select count (*) desde admin donde id = 3 y asc (a la derecha (a la izquierda (nombre de usuario

e, 3), 1)) entre 1 y 10000) con usted en el resto de la general, 97 a 122 pueden ser amigos, cartas Bueno, pronto D. Oh, por supuesto, alguien quiere usar la función Mid también es bueno asc ( mediados de (nombre de usuario, 2,1)) entre el 1 y 10000 se han convertido.

¿Cuánto más eficaces para prevenir ataques de inyección SQL? Específicamente se menciona el artículo siguiente!

contra los ataques de inyección a distancia

Este tipo de ataques en el pasado deben ser los ataques más comunes, tales como ataque del POST, un atacante puede cambiar fácilmente el valor de los datos que se presentará a tal efecto, haya sido para atacar. Otro ejemplo: galletas falsificación Esta es una más digna procedimientos causan escritores o estación nota larga, no se utilizan cookies para hacer por el método de autenticación de usuario, o usted y el ladrón salió de la clave es la misma razón.

Por ejemplo:

Si trim (cookies Request. ("fqy "))=" uname" y Request.Cookies ("upwd")

= "# E3i5.com Fqy" y luego

Más ........ .........

End if

Me gustaría que la escritura de programas, como webmaster o amigos no cometer errores tales, es realmente imperdonable. Falsificación de cookies son muchos años a partir de ahora, no se puede culpar a otras personas utilizan esto para ejecutar su contraseña. En relación con la contraseña de usuario o un inicio de sesión de usuario, será mejor que lo utilizan es la sesión más seguro. Si desea utilizar cookies las cookies en su información a añadir un extra, SessionID, que es un valor aleatorio de 64-bit, la solución de adivinar, no es posible . Ejemplo:

si no (o rs.BOF rs.eof) entonces

login = "true"

Session ("usuario" y SessionID) = Nombre de usuario

Session ("password" y SessionID) = Contraseña

"Response.Cookies (" usuario ") = Nombre de usuario

"Response.Cookies (" Password ") = Contraseña

Hablemos acerca de cómo prevenir los ataques remotos de inyección, los ataques son por lo general la presentación de una sola hoja en el local, el form action = "chk.asp" apunte a su servidor puede procesar el archivo de datos. Si todos los filtrado de datos en una página de formulario único, a continuación, le felicito, usted tendrá que ser un ataque de comandos.

¿Cómo podemos detener un ataque tan remoto? Fácil de manejar, vea el siguiente código: cuerpo del procedimiento (9)

"Sentido Personal del código anterior de filtrado no es muy buena, hay algunos externos y que estaba orgullosa de presentar en, a continuación, escribir una.

"Este es el filtro funciona bien, recomendado.

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

response.write "error de servidor al procesar URL.

Si está utilizando cualquier medio para atacar el servidor, que deberías estar contento, para su servidor registra todas las operaciones han sido, primero informar a la Oficina de Seguridad Pública y el departamento de seguridad nacional para investigar su propiedad intelectual ".

Response.End

end if

Procedimiento cuerpo (9)

Yo creía que todo irá bien, en la página de formulario mediante la adición de algunas limitaciones, como amigos MaxLength, etc .. pero Dios es tan Buzuo Mei, que cada vez más miedo de lo que era. No se olvide, un atacante puede romper a través de inyección SQL ataque, limitar la longitud de la caja de entrada. SOCKET escribir un procedimiento para cambiar HTTP_REFERER? no lo haré. Online publicó un artículo:

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

Registro de Windows Editor Version 5.00

[HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMenuExt extendido (+ E)]

@ = "C: Documents and len.htm SettingsAdministrator de escritorio"

"Contextos" = dword: 00000004

---------------------- ----------- Fin

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

---------- ----------------------- Fin

Uso: len.reg primero en el Registro (anote la ruta de archivo)

Y luego copiarlo en len.htm lugar especificado en el registro.

Abra la página Web, el cursor en el cuadro de entrada para cambiar la longitud del botón derecho del ratón para ver más de una opción de compra para la extensión correcta

Haga clic en el Hecho! Posdata: Las mismas restricciones también pueden estar en contra de los que entran en el contenido del guión.

¿Cómo? Nuestro límite se salvó, y todos los esfuerzos fueron en vano? No, levante el teclado de, decir que no. Sigamos para filtrar a los personajes script, no eran nada más que para la inyección de los ataques de script. Todos usamos toda la página después de que un recurso de energía, en la página chk.asp, vamos a filtrar todos los caracteres no válidos, el resultado? Sólo disparó finta en el frente y les dijo que cambiar el Registro que, cuando Encontrarán cambio completo, lo están haciendo en vano.

ASP Troya

Se ha mencionado aquí, para recordarle un foro webmaster, tenga cuidado de su carga de archivos: ¿Por qué el programa del Foro se rompió después de ser atacado por el anfitrión también se ocupan. Motivo por el derecho ......! ASP Troya! Una cosa absolutamente abominable. ¿Qué virus? Definitivamente no. Los archivos fácilmente en el programa del Foro, ir a buscar a tu viejo. ¡Oh, no extraña hematemesis. Cómo prevenir ASP Troya fue cargado en el servidor? El método es simple, si su foro de apoyo de carga de archivos, puede establecer el formato de archivo que quieres subir, yo no uso puede cambiar el formato de archivo, directamente desde el procedimiento bloqueado, sólo el formato de archivo de la imagen, y los comprimidos pueden ser completamente cómodo a abandonar sus propios también más conveniente dejar al atacante. Cómo juzgar el formato, he aquí una colección, también cambió a cabo una, se puede encontrar en: El cuerpo del procedimiento (10)

"Determinar el tipo de archivo está calificado

Función privada CheckFileExt (Extension)

dim Forumupload

Forumupload = "gif, jpg, bmp, jpeg"

Forumupload = split (Forumupload ,",")

para i = 0 To UBound (Forumupload)

si lcase (Extension) = LCase (trim (Forumupload (i))) a continuación,

= True CheckFileExt

salir de la función

más

CheckFileExt = false

end if

próximo

End Function

"Verificar la legitimidad del documento

conjunto MiArchivo server.CreateObject = ("Scripting.FileSystemObject")

conjunto MiTexto = MyFile.OpenTextFile (sFile, 1) 'lee un archivo de texto

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

"Determinar el riesgo de las operaciones de archivo de usuario

SSTR = "8 |. | GetFolder. | createfolder. | Borrar. | CreateDirectory

. Deletedirectory "

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

sNoString = split (SSTR ,"|")

para i = 1 a sNoString (0)

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

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

Response.Write "

"& & SFileSave" los documentos y el funcionamiento de los directorios que contienen las órdenes pertinentes "& _

"

"& Mid (sNoString (i), 2) &", por razones de seguridad, no puede subir. "& _

"

"

Response.End

end if

próximo

Procedimiento cuerpo (10)

Añadir a subir su sus procedimientos en hacer una validación, entonces la seguridad de su proceso de carga se verá muy reforzada.

¿Qué, no te preocupes? Fuera asesino, pídale a su proveedor de alojamiento para evitarlo. Entrar al servidor, el ID PROG en el Shell.Application "temas y" shell.application.1 "tema renombrado o eliminado. Entonces "WScript.Shell" artículos y "WSCRIPT.SHELL.1" Estos dos deben ser renombrado o borrado. Oh, me atrevo a decir, más de la mitad de China puede no ser la rehabilitación de la máquina virtual. Afortunadamente, usted puede usuarios muy cooperativo, de lo contrario ...... borro, borro, borrar borrar borrar mi ......

Resumen

¿Qué mejor para prevenir los ataques de inyección SQL? Aquí estoy para recomendar varias maneras, en primer lugar, los programas libres en realidad no pueden hacer uso gratuito, ya que permite compartir el código original, entonces el atacante puede analizar el mismo código. Si los propietarios tienen la capacidad de cambiar lo que es la mejor base de datos de nombres de tablas, nombres de campo, sólo modificar la clave de admin, nombre de usuario, contraseña en ella, como forum_upasswd este campo que puede adivinar el nombre? Si adivinaste, la más lotería buena compra rápidamente, un primer premio no te entonces ¿quién? Además, la clave está en la contraseña del administrador del sitio general, así proteger su contraseña de administrador que es crucial, por lo menos 10 el número de combinaciones de letras. Otra ventaja es que la mayoría de sitios se utilizan MD5 para cifrar el programa de la contraseña de usuario, además de su robustez contraseña, por lo que la seguridad de su sitio en el gran aumento. Si existe una vulnerabilidad de inyección SQL, un atacante no puede ganar el sitio inmediatamente.