Cómo buscar código malicioso sin antivirus ni escáneres. Cómo buscar código malicioso sin antivirus ni escáneres Cómo buscar código malicioso en WordPress

1. Descomprímalo en la carpeta del sitio.
2. siga el enlace su_sitio/fscure/
3. todo

¿Qué puede hacer él?

1. Búsqueda automática de virus por firmas.
2. Busque una cadena en archivos.
3. Eliminar archivos
4. Parchear código malicioso usando expresiones regulares

El guión no hará todo el trabajo por usted y requiere un conocimiento mínimo. Se recomienda hacer una copia de seguridad del sitio antes de trabajar.

¿Como funciona?

Cuando se inicia por primera vez, crea un índice de archivos. El archivo fscure.lst está en la carpeta. Muestra una lista de archivos que contienen firmas potencialmente maliciosas. “Potencialmente malicioso” significa que tendrás que decidir si se trata de un virus o no. La lista de firmas se configura en el archivo config.php, constante SCAN_SIGN. Con la configuración predeterminada, el script no verifica los archivos js y no contiene firmas para ellos.

Problemas más comunes

1. no crea el índice fscure.lst. Puede suceder si no hay suficientes derechos. Pon 777 en la carpeta fscure

2. Error 5xx. Más a menudo "Tiempo de espera de puerta de enlace 504". El script no tiene tiempo de procesarse y falla debido a un tiempo de espera. En este caso, existen varias formas de acelerar su trabajo. La velocidad depende principalmente del tamaño del índice. Está en el archivo fscure.lst. Normalmente, se puede procesar un archivo de hasta 5 MB en el 90% de los casos. Si no tiene tiempo, puede reducir la "codicia" del script prohibiendo escanear *.jpg;*.png;*.css en la configuración.
En el archivo config.php.

// delimitador; define("FILES_EXCLUDE","*.js;*.jpg;*.png;*.css");

3. El hosting emite una advertencia como
(HEX)base64.inject.unclassed.6: u56565656: /var/www/u65656565/data/www/34535335353.ru/fscure/index.php

No hay ningún virus en el guión y nunca lo hubo. Y (HEX)base64.inject.unclassed.6 es una construcción como "echo base64_decode(", que se encuentra a menudo y en sí misma es bastante inofensiva. Sin embargo, en la última versión, reemplacé este código.

¿Qué hacer si no pudo encontrar el virus usted mismo?

Puedes contactarme para obtener ayuda. Mis tarifas son modestas. Garantizo mi trabajo por 6 meses. El coste del trabajo es de 800 rublos. para 1 sitio. Si hay varios sitios en su cuenta, el precio se determina individualmente.

Si lograra hacer todo usted mismo, le agradecería una recompensa financiera o un enlace a mi sitio.

Mis requisitos:
Yandex
41001151597934

dinero web
Z959263622242
R356304765617
E172301357329

Hay que hacerlo juntos. Si elimina la causa original del hack (por ejemplo, una vulnerabilidad en la extensión CMS), pero no elimina todos archivos maliciosos, el atacante podrá volver a acceder al sitio utilizando uno de sus scripts. Si eliminas todo lo descargado scripts maliciosos, pero no elimine la causa del hack, el atacante podrá hackear el sitio nuevamente y cargar scripts en él nuevamente.

Un especialista con el conocimiento y la experiencia adecuados debe realizar trabajos para eliminar scripts maliciosos y analizar las causas del hackeo:

  • Para eliminar scripts maliciosos, necesita conocimientos del lenguaje de programación PHP, así como conocimiento del "interno" de los CMS populares (Joomla, WordPress, etc.) y sus extensiones. Este conocimiento es necesario para distinguir los scripts directamente del CMS y sus extensiones de archivos extraños, así como para poder determinar sin ambigüedades qué acciones realizan cuando se encuentran con scripts dudosos.
  • Para analizar las causas de la piratería, se requiere experiencia en administración de servidores. Esto es necesario para analizar el estado de los archivos de la cuenta, la hora en que fueron modificados y también para comparar estos datos con los registros del servidor para determinar qué acciones del atacante condujeron al pirateo de los sitios.

Por lo tanto, si su sitio ha sido pirateado, se recomienda, para evitar ataques repetidos, no hacer el trabajo usted mismo, sino contactar a un especialista que realizará los diagnósticos necesarios y recomendará o realizará acciones necesarias para solucionar el problema, y ​​quién puede garantizar la calidad del resultado obtenido.

Sin embargo, existen una serie de medidas que en algunos casos ayudan a restablecer el funcionamiento seguro del sitio sin conocimientos especiales. La limitación del método siguiente es que para reanudar el funcionamiento del sitio, se requiere una copia de seguridad creada antes del hackeo. Si se desconoce la fecha de la infracción, puede probar este método utilizando la copia de seguridad más antigua disponible. La segunda limitación, como consecuencia de la primera, es que después de restaurar el sitio, se crean los datos agregados al sitio después de la restauración (por ejemplo, nuevos artículos, imágenes o documentos). Si necesita restaurar el sitio conservando nuevos datos, debe comunicarse con un especialista.

Estas medidas no nos permiten determinar la causa del hackeo del sitio, pero cada una de ellas tiene como objetivo eliminar una de las posibles causas de penetración. Dado que se desconoce el motivo exacto del hack, es necesario realizarlos todos. Las acciones están dispuestas en tal orden que primero se elimine por completo la posibilidad de que el atacante continúe con sus actividades en el sitio o cuenta de alojamiento en actualmente y luego evitar que un atacante ingrese al sitio en el futuro.

Los pasos a continuación suponen que solo tiene un sitio web en su cuenta de hosting. Si hay varios sitios en la cuenta, también podrían piratearse y el sitio podría piratearse a través de ellos. Es necesario transferir el sitio con el que se están realizando los trabajos de restauración a una cuenta separada o realizar la restauración para todos los sitios alojados en la cuenta al mismo tiempo.

El orden de las acciones es importante, por lo que es necesario realizarlas en el orden exacto en el que se encuentran a continuación.

  • Inmediatamente después de descubrir que un sitio ha sido pirateado, es necesario bloquear completamente el acceso de los visitantes al mismo. Esto, en primer lugar, evitará que el atacante realice actividades maliciosas en el sitio y, en segundo lugar, no le permitirá interferir con los trabajos de restauración. Este paso es muy importante, ya que la eliminación de scripts maliciosos y la eliminación de la causa del hack no se realizan de la noche a la mañana; por regla general, lleva varias horas. Si el sitio sigue siendo accesible desde el exterior, el atacante podrá volver a cargar scripts en la sección del sitio que ya ha sido borrada. En este caso, un atacante puede utilizar diferentes direcciones IP para conectarse, por lo que negar el acceso sólo a una lista de direcciones IP no funcionará. Para garantizar que el sitio esté limpio de scripts maliciosos detectados, es necesario bloquear completamente la capacidad del atacante para acceder al sitio, lo que sólo se puede hacer bloqueando completamente el sitio para cualquier visitante. Contacta con el servicio de soporte técnico del hosting que aloja tu sitio para bloquearlo.
  • Después de bloquear el sitio, debe verificar las computadoras desde las cuales estaba trabajando con el sitio con un antivirus moderno con bases de datos de virus actualizadas. Si el sitio fue pirateado robando las contraseñas de las cuentas utilizando un virus, debe asegurarse de que el trabajo adicional con el sitio pirateado se realice desde una computadora que no tenga virus; de lo contrario, después de cambiar las contraseñas de acceso, pueden ser robadas nuevamente.
  • Después de bloquear el sitio y verificar si hay virus, debe cambiar todas las contraseñas de acceso a su cuenta: acceso vía FTP, vía SSH, así como acceso al panel de control del hosting. Si un atacante accedió a los archivos de la cuenta utilizando uno de estos métodos, una vez que se cambien las contraseñas, ya no podrá hacerlo.
  • Después de cambiar las contraseñas, debe destruir todos los procesos del servidor que se ejecutan en la cuenta en la que se mantiene el sitio. Los procesos iniciados por un atacante en segundo plano, sin ser destruidos, podrán reemplazar los scripts maliciosos en el sitio después de que se lleven a cabo los trabajos de restauración. Para evitar que esto suceda, se deben destruir todos los procesos que se ejecutaban antes de que se bloqueara el sitio. El sitio ya debería estar bloqueado en este momento para que el atacante no pueda iniciar nuevos procesos accediendo a uno de sus scripts en el sitio. Para destruir los procesos que se ejecutan en su cuenta, comuníquese con el servicio de soporte técnico del hosting que aloja su sitio.
  • Ahora es imposible penetrar el sitio desde el exterior y puedes comenzar a restaurarlo.
  • Antes de realizar otras acciones, elimine todos los archivos del sitio existentes para asegurarse de que no haya scripts maliciosos o scripts CMS en los que el atacante haya insertado código malicioso. Este paso también es importante porque al restaurar un sitio desde una copia de seguridad, los archivos que existían antes de la restauración no siempre se eliminan. Si, después de restaurar desde una copia de seguridad, quedan scripts maliciosos antiguos en el sitio, el atacante podrá volver a ingresar al sitio. Puede evitar esto eliminando todos los archivos del sitio antes de realizar la recuperación.
  • Después de eliminar todos los archivos del sitio, restaure el sitio a partir de una copia de seguridad creada antes de que fuera pirateado. A menudo es suficiente restaurar solo los archivos del sitio, pero si después de restaurarlos se observan errores en el funcionamiento del sitio, es necesario restaurar el sitio por completo: tanto los archivos como la base de datos.
  • Después de restaurar desde una copia de seguridad, actualice su sistema de administración de contenido (CMS) y sus extensiones a las últimas versiones. Esto es necesario para excluir la presencia de vulnerabilidades conocidas en el sitio a través de las cuales podría ser pirateado. Como regla general, la actualización se puede realizar a través de la sección de administración del CMS. por conseguir instrucciones completas Para actualizar el CMS, debe ir al sitio web del desarrollador del sistema. Es importante actualizar no solo el CMS en sí, sino también todas sus extensiones, ya que la piratería a menudo ocurre a través de una vulnerabilidad presente en una de las extensiones del CMS (por ejemplo, complementos, temas, widgets, etc.). En este momento, todavía es imposible desbloquear el sitio para los visitantes, ya que aún puede ser vulnerable. Para acceder a su sitio para actualizarlo, comuníquese con el soporte técnico del alojamiento que aloja su sitio y solicite permitir el acceso al sitio solo desde la dirección IP de su computadora. Puede averiguar su dirección IP, por ejemplo, en inet.yandex.ru.
  • Después de actualizar el sistema de administración del sitio y sus extensiones, vaya a la sección de administración del sitio y cambie la contraseña de acceso del administrador. Asegúrese de que entre los usuarios del sitio no haya otros usuarios con privilegios administrativos (podrían haber sido agregados por un atacante) y, si encuentra alguno, elimínelo.
  • Ahora que el sitio ha sido restaurado a partir de una copia de seguridad y no contiene scripts maliciosos, el CMS y sus extensiones se han actualizado para Últimas Versiones, en el que no hay vulnerabilidades y se han cambiado las contraseñas de acceso al sitio y a la cuenta de alojamiento, puede volver a abrir el sitio a los visitantes.
  • Todas las acciones anteriores deben realizarse de acuerdo con el orden especificado, sin omisiones ni cambios. Si las acciones se realizan de forma incorrecta, es posible que queden scripts maliciosos o vulnerabilidades en el sitio, por lo que un atacante puede volver a piratearlo al poco tiempo. Si por alguna razón no es posible realizar los pasos anteriores en la forma en que se indican, comuníquese con un especialista para que realice trabajos de restauración del sitio después de un hack.

    Para proteger su sitio de ataques repetidos en el futuro, debe seguir las siguientes recomendaciones:
  • Realice un seguimiento de las actualizaciones del CMS y sus extensiones en los sitios web de los desarrolladores y actualícelos rápidamente a las últimas versiones. Si un comentario de actualización indica que corrige una vulnerabilidad, instale la actualización lo antes posible.
  • Trabaje con el sitio y la cuenta de hosting solo desde computadoras que estén protegidas contra virus por antivirus modernos con bases de datos de virus constantemente actualizadas.
  • Utilice contraseñas complejas para que no puedan adivinarse mediante una búsqueda en el diccionario.
  • No guarde las contraseñas FTP y SSH en programas para conectarse al sitio, y no guarde la contraseña de acceso al área administrativa del sitio y al panel de control de hosting en su navegador.
  • De vez en cuando (por ejemplo, una vez cada tres meses), cambie las contraseñas para acceder al sitio y a la cuenta de alojamiento.
  • Si se detectaron virus en la computadora desde la cual estaba trabajando con el sitio, cambie las contraseñas de acceso al sitio y a la cuenta de alojamiento lo más rápido posible. Es necesario cambiar todas las contraseñas: contraseñas de acceso vía FTP, SSH, la contraseña del panel administrativo del sitio, así como la contraseña del panel de control del hosting.
  • No proporcione acceso al sitio a terceros a menos que esté seguro de que ellos también seguirán estas pautas.
  • El código malicioso ingresa al sitio por negligencia o intención maliciosa. Los propósitos del código malicioso varían, pero esencialmente daña o interfiere con el funcionamiento normal de un sitio web. Para eliminar código malicioso en WordPress, primero debes encontrarlo.

    ¿Qué es el código malicioso en un sitio de WordPress?

    Por apariencia En la mayoría de los casos, el código malicioso es un conjunto de letras y símbolos del alfabeto latino. De hecho, se trata de un código cifrado mediante el cual se realiza tal o cual acción. Las acciones pueden ser muy diferentes, por ejemplo, sus nuevas publicaciones se publican inmediatamente en un recurso de terceros. Básicamente, esto es robar tu contenido. Los códigos también tienen otras “tareas”, por ejemplo, colocar enlaces salientes en las páginas del sitio. Las tareas pueden ser las más sofisticadas, pero una cosa está clara: es necesario buscar y eliminar los códigos maliciosos.

    ¿Cómo llegan los códigos maliciosos a un sitio web?

    También hay muchas lagunas para que los códigos ingresen al sitio.

  • La mayoría de las veces, se trata de temas y complementos descargados de recursos "izquierdos". Sin embargo, esta penetración es típica de los llamados enlaces cifrados. El código explícito no termina en el sitio.
  • La penetración de un virus cuando se piratea un sitio es la más peligrosa. Como regla general, piratear un sitio le permite colocar no solo un "código de un solo uso", sino también instalar código con elementos de malware (programa malicioso). Por ejemplo, encuentra un código y lo elimina, pero se restaura después de un tiempo. Nuevamente hay muchas opciones.
  • Permítanme señalar de inmediato que combatir estos virus es difícil y que la eliminación manual requiere conocimientos. Hay tres soluciones al problema: la primera solución es utilizar complementos antivirus, por ejemplo, un complemento llamado BulletProof Security.

    Esta solución da buenos resultados, pero lleva tiempo, aunque sea un poco. Existe una solución más radical para deshacerse de códigos maliciosos, incluidos virus complejos, es restaurar el sitio a partir de códigos prefabricados. copias de seguridad sitio.

    Como un buen webmaster hace esto periódicamente, puedes volver a una versión no infectada sin ningún problema. La tercera solución es para ricos y perezosos: basta con ponerse en contacto con una “oficina” especializada o con un especialista individual.

    Cómo buscar código malicioso en WordPress

    Es importante comprender que el código malicioso en WordPress puede estar en cualquier archivo del sitio y no necesariamente en el tema de trabajo. Puede crear un complemento, un tema o un código "hecho en casa" extraído de Internet. Hay varias formas de intentar encontrar código malicioso.

    Método 1: manualmente. Se desplaza por todos los archivos del sitio y los compara con los archivos de una copia de seguridad no infectada. Si encuentra el código de otra persona, elimínelo.

    Método 2: uso de complementos de seguridad de WordPress. Por ejemplo, . Este complemento tiene una gran característica: escanea los archivos del sitio en busca de código de otras personas y el complemento hace frente a esta tarea perfectamente.

    Método 3. Si tiene un soporte de alojamiento razonable y le parece que hay alguien más en el sitio, pídale que escanee su sitio con su antivirus. Su informe enumerará todos los archivos infectados. A continuación, abra estos archivos en editor de texto y eliminar código malicioso.

    Método 4. Si puede trabajar con acceso SSH al directorio del sitio, adelante, tiene su propia cocina.

    ¡Importante! No importa cómo busque código malicioso, antes de buscar y luego eliminar el código, cierre el acceso a los archivos del sitio (active el modo de mantenimiento). Recuerde los códigos que se restauran cuando se eliminan.

    Busque códigos maliciosos utilizando la función de evaluación

    Existe una función de este tipo en PHP llamada eval. Le permite ejecutar cualquier código en su línea. Además, el código se puede cifrar. Es debido a la codificación que el código malicioso parece un conjunto de letras y símbolos. Dos codificaciones populares son:

  • Base64;
  • podredumbre13.
  • En consecuencia, en estas codificaciones la función eval se ve así:

    • evaluación(base64_decode(...))
    • eval (str_rot13 (...)) //entre comillas internas, conjuntos de letras y símbolos largos y poco claros..

    El algoritmo para buscar código malicioso mediante la función eval es el siguiente (trabajamos desde el panel administrativo):

    • vaya al editor del sitio (Apariencia → Editor).
    • Copie el archivo funciones.php.
    • ábrelo en un editor de texto (por ejemplo, Notepad++) y busca la palabra: eval.
    • Si lo encuentra, no se apresure a eliminar nada. Debe comprender qué “pide” que se realice esta función. Para entender esto, es necesario decodificar el código. Para decodificar existen herramientas online llamadas decodificadores.
    Decodificadores/Codificadores

    Los decodificadores funcionan de forma sencilla. Copias el código que deseas descifrar, lo pegas en el campo decodificador y lo decodificas.

    En el momento de escribir este artículo, no encontré ni un solo código cifrado en WordPress. Encontré el código en el sitio web de Joomla. En principio, no hay diferencia en la comprensión de la decodificación. Miremos la foto.

    Como puede ver en la foto, la función de evaluación, después de la decodificación, no mostró un código terrible que amenace la seguridad del sitio, sino un enlace de derechos de autor cifrado del autor de la plantilla. También se puede eliminar, pero volverá después de actualizar la plantilla si no utiliza .

    En conclusión, me gustaría señalar que para no recibir virus en el sitio:

    • El código malicioso en WordPress suele venir con temas y complementos. Por lo tanto, no instale plantillas y complementos de recursos "izquierdos" no verificados y, si lo hace, verifique cuidadosamente la presencia de enlaces y funciones ejecutivas de PHP. Después de instalar complementos y temas de recursos "ilegales", consulte el sitio con un software antivirus.
    • Asegúrese de realizar copias de seguridad periódicas y realizar otras.
    JavaScript malicioso

    Mi opinión, que es que es más fácil y eficaz protegerse contra scripts de navegador maliciosos inyectados (ataques XSS almacenados) utilizando herramientas de navegador, se expresó anteriormente: . La protección del navegador contra JavaScript, que consiste en añadir código de filtrado a las páginas HTML del sitio web, es presumiblemente fiable; sin embargo, la presencia de dicha protección no elimina la necesidad de utilizar también un filtro de servidor. Para los mismos ataques XSS, puedes organizar una línea de defensa adicional en el servidor. También debemos recordar la posibilidad de que un atacante introduzca en un mensaje HTML enviado desde un sitio scripts no basados ​​en el navegador, sino del lado del servidor (php), que el navegador no podrá reconocer.

    Un script de ataque, ya sea basado en navegador o en servidor, es un programa; hay que pensar que el programa siempre tendrá algunas diferencias simbólicas con respecto al HTML “puro”. Intentemos encontrar esas diferencias y utilizarlas para crear un filtro HTML en el servidor. A continuación se muestran ejemplos de JavaScript malicioso.

    XSS:

    Algún texto


    Algún texto

    XSS cifrado:

    Algún texto


    Algún texto

    Los navegadores recuperan texto de caracteres primitivos no sólo ubicados dentro de contenedores html (entre las etiquetas de apertura y cierre), sino también dentro de las propias etiquetas (entre< и >). Se permite la codificación de URL en direcciones http. Esto dificulta el reconocimiento de códigos maliciosos en el lado del servidor, ya que la misma secuencia de caracteres puede representarse de diferentes maneras.

    Gusanos XSS:

    "+innerHTML.slice(acción= (método="publicación")+".php",155)))">





    alerta ("xss"); con (nueva XMLHttpRequest) abrir ("POST", "post.php"), enviar ("content="+_.outerHTML)

    Los gusanos XSS mencionados anteriormente son sólo algunos de los muchos presentados al concurso de enero de 2008 de Robert Hansen (también conocido como RSnake) para elegir el gusano JavaScript malicioso más corto (resultados del concurso).

    Signos de ataques XSS

    Un script XSS es un programa que accede a objetos DOM (Document Object Model) y sus métodos. De lo contrario, es poco probable que sea perjudicial. Por ejemplo, cadena de JavaScript
    onckick="var a = "xss""
    no afecta el modelo de objetos del documento, por lo que incluso si está incrustada en una etiqueta html, dicha cadena es inofensiva. Sólo manipulando los objetos de documentos HTML y sus métodos un hacker puede causar un daño significativo a un sitio. Por ejemplo, la línea
    onmousemove="document.getElementsByTagName("cuerpo").innerHTML="XSS""
    ya reemplaza el contenido de la página.

    Un signo de acceso a los métodos DOM son los paréntesis, así como los puntos a la izquierda del signo igual. Los paréntesis también se pueden usar en html para establecer un color en el formato rgb(); sin embargo, la fuente y los colores de fondo en html se configuran al menos de tres maneras más. Por lo tanto, se pueden sacrificar los paréntesis sin comprometer la expresividad del texto html. Es necesario aceptar como regla que los paréntesis estén dentro de la etiqueta (es decir, entre< и >) - esto es muy peligroso, si recibimos un mensaje de un usuario en el servidor, este mensaje contiene corchetes dentro de las etiquetas, entonces lo más apropiado que debemos hacer es bloquear dicho mensaje.

    El punto puede estar contenido en etiquetas html: al especificar la dirección del enlace (etiqueta ); al configurar el tamaño de los elementos html (style="height:1.5in; width:2.5in;" ). Pero las secuencias de caracteres de la forma
    punto de la letra es igual
    no puede estar en etiquetas html. Si la secuencia especificada está presente dentro de una etiqueta html, lo más probable es que el mensaje del usuario contenga un script y deba bloquearse.

    Otra señal de peligro obvia es el símbolo "+" dentro de la etiqueta. No existe tal cosa en HTML sin secuencias de comandos. Si encontramos ventajas dentro de las etiquetas, bloqueamos el mensaje sin piedad.

    Para el cifrado con caracteres primitivos dentro de etiquetas html, un usuario bien intencionado del sitio agrega un comentario usando editor visual, nunca vendrá corriendo. El uso de primitivas simbólicas en etiquetas no proporciona ningún beneficio en forma de medios expresivos adicionales; sólo requiere tiempo de escritura adicional. En la mayoría de los casos, uno podría pensar que un usuario bien intencionado ni siquiera sabe que existen ciertos caracteres primitivos en HTML. De ahí la regla: un símbolo dentro de una etiqueta es evidencia de un ataque al sitio. En consecuencia, si vemos esto, bloqueamos el mensaje.

    Se debería adoptar una regla similar con respecto al símbolo "%", que se puede utilizar en la codificación de URL. Sin embargo, los porcentajes también se utilizan en HTML "puro" para establecer los tamaños relativos de los elementos. Las combinaciones peligrosas son aquellas en las que al signo "%" le sigue inmediatamente una letra o un número.

    Neutralización de scripts del servidor

    A diferencia de los intérpretes de JavaScript en los navegadores, el intérprete de PHP en el servidor no permite libertades al escribir el texto del programa. Por lo tanto, para neutralizar un posible script del servidor, basta con reemplazar completamente en el mensaje HTML del usuario todos los caracteres que son esenciales al escribir un programa PHP con sus primitivas HTML. Los primeros signos que se sustituirán son el dólar y el guión bajo, el punto, el redondo, el cuadrado y llaves, signos más y menos, signo de barra invertida.

    Filtro PHP para mensajes HTML

    $message es el mensaje html recibido del editor visual al servidor.

    // recuerda la longitud del mensaje $lenmessage = strlen($message); // recorta la etiqueta del comentario $message = preg_replace("//", "", $message); // recorta cada etiqueta en la que el atributo "src" se refiere a un recurso externo $message = preg_replace("/]+?src[\w\W]+\/\/[^>]+?>/i" , " ", $mensaje); // recorta todas las etiquetas que contengan algún carácter excepto: - a-z 0-9 / . : ; " = % # espacio $mensaje = preg_replace("/]+[^->a-z0-9\/\.\:\;\"\=\%\#\s]+[^>]+?> /i", "", $mensaje); // recorta cada etiqueta que contenga la secuencia ". a-z =" $message = preg_replace("/]+?\.+?\=[^>]+?>/i", "", $message); // recorta cada etiqueta que contenga la secuencia "% a-z" o "% 0-9" $message = preg_replace("/]+?\%+?[^>]+?>/i", "", $ mensaje); // recorta cada etiqueta que contenga la secuencia "script" o "js:" $message = preg_replace("/]*?script[^>]*?>/i", "", $message); $mensaje = preg_replace("/]*?js:[^>]*?>/i", "", $mensaje); // recorta cada etiqueta que comienza con un carácter que no sea "a-z" o "/" $message = preg_replace("/]*?>/i", "", $message); // comprobar: si el mensaje se acorta, entonces finaliza el programa $lenmessage2 = strlen($message); if ($lenmessage != $lenmessage2) ( print "El mensaje no se puede agregar"; exit; ) // realiza el reemplazo de extremo a extremo de caracteres peligrosos con sus correspondientes primitivas $message = str_replace("$", "$" , $mensaje); $mensaje = str_replace("_", "_", $mensaje); $mensaje = str_replace(".", ".", $mensaje); $mensaje = str_replace(chr(92), "\", $mensaje); // \ $mensaje = str_replace("(", "(", $mensaje); $mensaje = str_replace()", ")", $mensaje); $mensaje = str_replace("[", "[", $mensaje); $mensaje = str_replace("]", "]", $mensaje); $mensaje = str_replace("(", "(", $mensaje); $mensaje = str_replace()", ")", $mensaje); $mensaje = str_replace("?", "?", $mensaje); // ahora el mensaje ha sido verificado, los scripts que contiene han sido neutralizados

    Cabe señalar que el filtro no elimina las etiquetas emparejadas. digamos que tenemos
    ¡Haga clic aquí!
    El filtro solo eliminará la etiqueta , pero la etiqueta emparejada (de cierre) permanecerá. Si envía mensajes que contienen etiquetas sin pares correspondientes al navegador, puede experimentar problemas en forma de "sesgo" del sitio. No se sabe con qué etiqueta de apertura coincidirá el navegador con la etiqueta de cierre no emparejada restante. Por tanto, y también por motivos de seguridad, los mensajes en los que el filtro haya cortado algo no deben enviarse al navegador en absoluto. Es mejor imprimir algo como "No se pudo agregar el mensaje" y salir del programa.

    Se espera que el mensaje se escriba en un archivo (no en una base de datos).

    Discusión

    Estaré agradecido por las críticas. Escribe al foro de soporte, en la sección

    
    Arriba