Nes gestiona de forma totalmente transparente la eliminación de código malicioso de las variables.
Por defecto es filtrado el HTML y los Tags Nes de todas las variables de entorno (*) procedentes de formularios.
Por defecto es filtrado el HTML y los Tags Nes de todas las variables ($).
Por defecto es filtrado el HTML y los Tags Nes de todas las variables de Tablas y SQL (@$).
Por defecto en HTML se permite el Tag HTML <br>.
Por defecto se llama a DBI::quote en todas las variables que formen parte de una sentencia SELECT en el Tag sql.
Los tipos de variables *, $ y @$ admiten parámetros para cambiar este comportamiento:
{: $ ('var','yes_html','no_sql') :} {: * ('q_var','yes_html','no_sql') :} {: @$ ('table.field','yes_html','no_sql') :}Esto es, pasamos como parámetros las opciones de filtrado que deseeamos, y son:
no_sql # no permitir SQL, llama a DBI::quote no_html # no permitir Tag HTML no_br # no permitir el Tag HTML <br> no_nes # no permitir Tag Nes {: :} yes_sql # permitir SQL, no filtrar con DBI::quote yes_html # permitir todos los Tags HTML yes_br # permitir el Tag HTML <br> yes_nes # permitir Tag Nes {: :} Permitir tags HTML concretos ( yes_tag_TAG ): yes_tag_B # permitir el Tag HTML <B></B> yes_tag_strong # permitir el Tag HTML <strong></strong> ...
El formato es:
{: $ ('var',[lista del opciones en cualquier orden]) :}
Si hacemos a una variable yes_nes no conseguiremos ejecutar el código que contenga la variable. Por seguridad, por claridad, NO es posible ejecutar código Nes desde una variable. El efecto de no_nes es que los Tags sean visibles, y de yes_nes es que desaparezcan. No queremos que hagan cosas como esta:
http://nes.sourceforge.net/miniblog/es/?item={: include .htaccess :}...o peores, ¿verdad?
Esta aplicación esta creada con Nes, como podéis ver el código fuente de está disponible en tiempo real para poder ser visto por cualquiera.
Es importante mantener los datos sensibles separados de la aplicación como rutas de directorios, contraseñas, etc.
Los archivos de configuración .nes.cfg no sólo nos pueden resultar útiles como herramienta de programación, también hacen nuestra aplicación más segura.
Hay que impedir el acceso a estos archivos en nuestro .htaccess:
<FilesMatch \.nes.cfg$> order deny,allow deny from all </FilesMatch>
Ver:
Formularios: Formularios seguros
Plugin: Forms
Plugin: Captcha
NES filtra el los Tags Nes de los formularios del PHP con include o Wrapper pero NO el HTML y SQL. Se presupone que el script PHP debe incorporar esos filtros.