'Función: función de detección de cadena segura
'Nombre:SafeCheck
'Parámetros: CheckString, CheckType, CheckLength
'ilustrar:
'Checkstring La cadena que se va a detectar: cualquier carácter.
'Tipo de detección CheckType 0 carácter corto normal 1 número 2 fecha 3 dinero 4 codificación HTML5 decodificación HTML6 cadena de inicio de sesión 7 detección anti-ataque
'CheckLength detecta la longitud del tipo: el tipo es int, cuando es dinero, es la posición del punto decimal
'Valor de retorno: si pasa la prueba, devuelve la cadena correcta,
'Si falla, devuelve el código de error SYSTEM_ERROR|ERROR_CODE
'Guión escrito por :SnowDu(DU雪.NET)
'Web: http://www.snsites.com/
'Web:http://www.downcodes.com/
'------------------------------------------------------
función SafeCheck(CheckString,CheckType,CheckLength)
En caso de error Continuar siguiente
ErrorRoot="SYSTEM_ERROR|"
si checkString="" entonces
SafeCheck=ErrorRoot&"00001"
función de salida
finalizar si
CheckString=Replace(CheckString,"'","'")
seleccionar caso CheckType
caso 0
CheckString=recortar(CheckString)
SafeCheck=Izquierda(CheckString,CheckLength)
caso 1
si no es numérico (CheckString), entonces
SafeCheck=ErrorRoot&"00002"
función de salida
demás
SafeCheck=Izquierda(CheckString,CheckLength)
terminar si
caso 2
tempVar=EsFecha(CheckString)
si no es TempVar entonces
SafeCheck=ErrorRoot&"00003"
función de salida
demás
seleccionar caso CheckLength
caso 0
SafeCheck=FormatoFechaHora(CheckString,vbShortDate)
caso 1
SafeCheck=FormatoFechaHora(CheckString,vbLongDate)
caso 2
SafeCheck=CheckString
finalizar seleccionar
terminar si
caso 3
tempVar=FormatoMoneda(CheckString,0)
si errar entonces
SafeCheck=ErrorRoot&"00004"
función de salida
demás
SafeCheck=FormatoMoneda(CheckString,CheckLength)
terminar si
caso 4
sTemp = cadena de verificación
Si IsNull(sTemp) = Verdadero Entonces
SafeCheck=ErrorRoot&"00005"
Función de salida
Terminar si
sTemp = Reemplazar(sTemp, "&", "&")
sTemp = Reemplazar(sTemp, "<", "<")
sTemp = Reemplazar(sTemp, ">", ">")
sTemp = Reemplazar(sTemp, Chr(34), """)
sTemp = Reemplazar(sTemp, Chr(10), "<br>")
SafeCheck = Izquierda(sTemp,CheckLength)
caso 5
sTemp = cadena de verificación
Si IsNull(sTemp) = Verdadero Entonces
SafeCheck=ErrorRoot&"00006"
Función de salida
Terminar si
sTemp = Reemplazar(sTemp, "&", "&")
sTemp = Reemplazar(sTemp, "<", "<")
sTemp = Reemplazar(sTemp, ">", ">")
sTemp = Reemplazar(sTemp, """, Chr(34))
sTemp = Reemplazar(sTemp, "<br>",Chr(10))
SafeCheck = Izquierda(sTemp,CheckLength)
caso 6
s_BadStr = "' &<>?%,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32)
n = Len(s_BadStr)
IsSafeStr = Verdadero
Para i = 1 tonelada
Si Instr(CheckString, Mid(s_BadStr, i, 1)) > 0 Entonces
IsSafeStr = Falso
Terminar si
Próximo
si IsSafeStr entonces
SafeCheck=izquierda(CheckString,CheckLength)
demás
SafeCheck=ErrorRoot&"00007"
Función de salida
terminar si
caso 7
s_Filter="usuario de red|xp_cmdshell|/add|select|count|asc|char|mid|'|""|"
S_Filter=S_Filter&"insertar|eliminar|soltar|truncar|de|%|declarar|-"
S_Filters=dividir(S_Filter,"|")
se encuentra=falso
para i=0 a ubound(S_Filters)-1
si Instr(lcase(CheckString),lcase(S_Filters(i)))<>0 entonces
se encuentra = verdadero
salida para
terminar si
próximo
si se encuentra entonces
SafeCheck=ErrorRoot&"00008"
Función de salida
demás
SafeCheck=izquierda(CheckString,CheckLength)
terminar si
finalizar seleccionar
función final