El ataque de inyección SQL es causado por las imperfecciones en nuestras oraciones de programación. El específico debe ser así.
If instrer (request (id),)> 0 o Instr (request (id), ')> 0 luego respuesta.redirect index.htm
¡Por supuesto, también puedes escribir lo que quieres detrás de entonces!
Primero aprendamos la función Instr:
gramática
Instr ([inicio,] string1, string2 [, compare]))
La gramática de la función Instr tiene los siguientes parámetros:
Descripción del parámetro
Comience opcional. Expresión numérica, utilizada para establecer la posición inicial de cada búsqueda. Si se omite, comenzará a buscar desde la posición del primer personaje. Si Start contiene nulo, se producirá un error. Si se especifica, debe haber un parámetro de inicio.
String1 debe ser seleccionado. Acepte la expresión de la cadena de búsqueda.
String2
Debe -elegir. Expresión de cadena de búsqueda.
Compaee opcional. Indica el tipo de valor de comparación utilizado al calcular la subpaja. Para los valores, consulte la parte de configuración. Si se omite, realizará comparaciones binarias.
El parámetro Compare puede tener el siguiente valor:
Descripción del valor específico
VbbinaryCompare 0 ejecuta comparación binaria.
VBTextCompare 1 Ejecuta comparación de texto.
[Valor de retorno]
La función Instr devuelve el siguiente valor:
Si Instr regresa
String1 es longitud cero 0
String1 es nulo nulo
String2 es un inicio de longitud cero
String2 es nulo nulo
String2 no encontró 0
Buscar string2 en String1 para encontrar la posición de la cadena coincidente
Inicio> Len (String2) 0
El siguiente ejemplo usa una cadena de búsqueda de instrucciones:
Dim Searchstring, Searchchar, MyPos
SearchString = xxpxxpxxpxxp 'para buscar en él.
Searchchar = P 'Search P.
MyPOS = Instr (4, SearchString, Searchchar, 1) 'Comparación de texto Devuelve 6 del cuarto carácter.
MyPos = instr (1, SearchString, Searchchar, 0) 'La comparación binaria comenzó a devolver 9 del primer carácter.
Mypos = instr (SearchString, Searchchar) 'Back 9.
'La deficiencia es una comparación binaria (se omite el último parámetro).
Mypos = instr (1, Searchstring, W) 'Comparación binaria Devuelve 0 (no encontrado W) del primer carácter.
Tenga en cuenta que la función INSTR utiliza datos de byte que contienen en la cadena, por lo que InstrB devuelve no una posición de caracteres que aparece en otra cadena en otra cadena, sino posiciones de byte.
Resumen: La función de Instr es: la posición donde el carácter o las cadenas aparecen por primera vez en otra cadena.
If instrer (request (id),)> 0 o Instr (request (id), ')> 0 entonces
Significado: caracteres de comparación (espacios) y caracteres (') en la posición específica (id) en la solicitud (id).
¡Ahora todos entienden este significado!
Cuando lo miré a primera vista, dije, si estaba en ASP? Id = 90 más caracteres (; o,) y otros caracteres no están hechos de errores? (Sí, la respuesta es positiva :)
Se estima que algunas personas dicen que agregaré algunos caracteres en If Instal (id),)> 0 o Instr (id), ')> 0 entonces Declaración, como cambiar a: If Instant (id (id (id ( Id (id (id (id (id (id (id (id (id (id),)> 0 o instrer (request (id), ')> 0 o instrer (Solicitud (id) ,,)> 0 entonces
Espera, puedes agregarlo más tarde, ¡jaja! (¡Esto es bueno! Pero está podrido :)
Sí, después de agregar esto, de hecho puede pasar por las manos de los piratas informáticos.
De hecho, no es necesario. Mientras haya esta oración, ¿son los piratas informáticos que llaman SO, y 1 = 1 es inútil?