Ideas básicas:
Escriba un programa independiente para cada función, página del programa
Informe a los clientes con la menor cantidad de información posible en el lado de su servidor
No use la idea de "los clientes deben escribir esto" para pensar en el problema
Piense en tantas cosas como sea posible que no pueda suceder
1. Posibles problemas con las páginas web dinámicas interactivas
1.1 Interacción de tipo de formulario
1.1.1 Introducción a los conceptos
Cuando interactuamos con los visitantes, la forma más utilizada (método post/get/put). Aunque es muy conveniente, surgen muchos problemas debido a eso.
El indicador de entrada en el formulario
Se usa para aceptar información ingresada por usuarios, como: nombre de usuario, contraseña, correo electrónico, etc. Si no verifica bien la entrada del usuario, un usuario malicioso
Bloqueará algunas máquinas de seguridad
Para evitar la certificación de seguridad. Por ejemplo, ingresar una instrucción HTML estándar o la instrucción JavaScript cambiará el resultado de la salida, e ingresar una instrucción HTML estándar en el cuadro de entrada
¿Qué tipo de resultados se obtendrán? Por ejemplo, en un libro de mensajes, ingresamos el contenido de nuestro mensaje: <fontSize = 10> ¡Hola! </font> Si no hay pantalla en su programa
Bloquear las declaraciones HTML, luego se cambiará la fuente de "hola"
tamaño. Cambiar el tamaño de fuente y las pegatinas en el libro de mensajes a veces no es algo malo, pero puede hacer que el libro de mensajes vívido. Pero si lo escribe en el cuadro de entrada
El bucle muerto de JavaScript, como:
<aherf = "http: // someurl" onmouseover = "while (1) {window.close ('/')}"> Los primeros mil emocionantes </a> luego verifique el mensaje para otros.
Solo mueve a los invitados
Si mueve el mouse a "los primeros mil emocionales", el navegador del usuario morirá debido al bucle muerto.
1.1.2 Puntos clave de prevención
(1) Filtrar caracteres especiales
([/&;/`'/// |"*? ~ <>^/(/)/[/]/{/}/$/n/r]) /// $ 1/g;), este es el más básico, y se ha mencionado más de una vez en muchos lugares.
<scriptLanguage = "vBscript">
subbubotton_onclick
erm1.uusername.value = "" Entonces
msgbox "¡Tu nombre no puede estar vacío!", 0+32, "¡Oh! aún no es posible"
form1.uusername.cocus
salida
endif
efform1.upassword.value = "" entonces
msgbox "¡Su contraseña no puede estar vacía!", 0+32, "¡Oh! aún no es posible"
form1.upassword.cocus
salida
endif
erm1.uusername.value = "" Entonces
msgbox "¡Tu nombre no puede estar vacío!", 0+32, "¡Oh! aún no es posible"
form1.uusername.cocus
salida
endif
form1.submit
Endsub
</script>
FunctionSEpty (objname)
{
varstr = document.inputform [objname] .value
vartmpStr = str.replace ([/&;/`'/// |"*? ~ <>^/(/)/[/]/{/}/$/n/r]) /// $ 1/g;, "")
vartmpStr = tmpstr.replace ([/&;/`'/// |"*? ~ <>^/(/)/[/]/{/}/$/n/r]) /// $ 1/g;, "")
return (tmpstr.length == 0)
}
functionCheck ()
{
tf = document.inputform
errores = ""
if (isEmpty ("username")) errores+= "nombre de usuario no se puede vaciar./n";
if (isEmpty ("contraseña")) errores+= "¡La contraseña no puede estar vacía!/N"
if (errores! = "")
alerta (errores);
return (errores == "")