Es fácil desarrollar el sitio web de ASP con DreamWaver. Entonces, ¿no hay diferencia entre los novatos y los veteranos? La diferencia en él es grande, pero es difícil para el laico ver de un vistazo. La amistad, el rendimiento operativo y la seguridad del sitio web de la interfaz son los tres puntos de concentración que son diferentes de los novatos y los veteranos.
En términos de seguridad, el problema más fácil de los novatos es el problema de las vulnerabilidades inyectadas por SQL. Use NBSI 2.0 para escanear algunos sitios web de ASP en Internet, y puede encontrar que muchos sitios web de ASP tienen vulnerabilidades de inyección SQL.
La inyección SQL de SO (inyección SQL) es utilizar las lagunas de los datos de entrada del programador a los datos de entrada del usuario, que utiliza las lagunas como la detección inadecuada o no la detección.
Se puede ver que la razón principal para la inyección de ataques SQL no verifica los datos ingresados por el usuario.
La solicitud HTTP general no es más que obtener y publicar, por lo que siempre que filtremos toda la información de los parámetros de todas las publicaciones o obtengamos solicitudes en el programa, podemos evitar ataques de inyección SQL.
Desafortunadamente, DW no proporciona un código relevante, por lo que si desea evitar el ataque de tipo de inyección SQL, debe modificarlo.
Simplemente guarde el siguiente programa como sqlinyection.asp, y luego llame al encabezado de las páginas que deben inyectarse.
<!-#include file = sqlinyection.asp->
Puedes hacer la inyección de defensa de la página.
Si desea consultar toda la estación, agregue las llamadas de la cabeza o agregue directamente el siguiente código de programa en el archivo de conexión de la base de datos generado por la conexión generada por DW. Archivo de conexión de la base de datos.
Código general del programa (citado desde Internet para realizar los cambios apropiados) de la siguiente manera:
<%
'--------- Piezas de definición -------------------
dim sql_injdata
Sql_injdata = '|
Actualización |
| Declarar |
Sql_inj = dividido (sql_injdata, | | |
'-----------------------------
If request.querystring <> entonces
Para cada sql_get en request.queryString
Para sql_data = 0 a Ubound (SQL_INJ)
If instrer (request.queryString (sql_get),
Sql_inj (sql_data))> 0 entonces
Response.Write <Script Language = JavaScript>
Alerta ('¡El sistema te recuerda!/N/N, por favor no pruebes los caracteres ilegales en el parámetro para intentar inyectar!/N/n');
Respuesta.
final si
próximo
Próximo
Final si
'-------- obtenga piezas ---------------------
If request.form <> entonces
Para cada sql_post en request.form
Para sql_data = 0 a Ubound (SQL_INJ)
if instr (request.form (sql_post), sql_inj (sql_data))> 0 entonces
Response.Write <Script Language = JavaScript>
Alerta ('¡El sistema te recuerda!/N/N, por favor no pruebes los caracteres ilegales en el parámetro para intentar inyectar!/N/n');
Respuesta.
final si
próximo
próximo
final si
%>
A través del programa anterior, se puede lograr el carácter de inyección SQL de peligro enviado desde el método GET o el método POST, y se advierte a los invasores que recurran a index.htm (página de inicio).