sql >> Base de Datos >  >> RDS >> Mysql

Forma 100% segura de almacenar html en MySQL

En la mayoría de los casos, la inyección SQL se evita fácilmente con el uso de declaraciones preparadas.

XSS es más difícil si planea permitir que los usuarios publiquen marcado HTML. Debe eliminar todo <script> etiquetas, todas on* atributos de etiquetas, todos javascript: urls, e incluso entonces eso probablemente no esté completamente garantizado para hacer que el HTML de entrada sea seguro. Hay bibliotecas como HTMLPurifier eso puede ayudar, pero siempre que permita HTML, corre el riesgo de dejar pasar algo malicioso.

En su lugar, podría usar una biblioteca que implemente algo como Markdown o wikitext. Esto limita severamente lo que los usuarios pueden ingresar, al mismo tiempo que les permite marcar el contenido hasta cierto punto. No es una prueba completa (las personas aún pueden publicar enlaces a sitios maliciosos y esperar que los usuarios hagan clic en ellos, lo que algunos serán lo suficientemente ingenuos como para hacerlo), y no podrá usar un editor enriquecido como TinyMCE sin algún tipo de de complemento, pero es un trabajo mucho más simple desinfectar Markdown que desinfectar HTML.