60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
|
---
|
||
|
title: HTML Dom Innerhtml Property
|
||
|
localeTitle: HTML Dom Innerhtml Propiedad
|
||
|
---
|
||
|
## HTML Dom Innerhtml Propiedad
|
||
|
|
||
|
La propuesta `innerHTML` devuelve el contenido HTML dentro de un elemento seleccionado y también le permite definir un nuevo contenido HTML.
|
||
|
|
||
|
**_OBTENER CONTENIDO DE ELEMENTOS_**
|
||
|
|
||
|
```html
|
||
|
|
||
|
<div id="demo">
|
||
|
<p>Demo</p>
|
||
|
</div>
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
var element = document.getElementById("demo");
|
||
|
console.log(element.innerHTML) //logs <p>Demo</p>
|
||
|
```
|
||
|
|
||
|
**_SET ELEMENTO CONTENIDO_**
|
||
|
|
||
|
```html
|
||
|
|
||
|
<div id="demo"></div>
|
||
|
```
|
||
|
|
||
|
```javascript
|
||
|
var element = document.getElementById("demo");
|
||
|
element.innerHTML = "<div>Demo</div>";
|
||
|
```
|
||
|
|
||
|
El HTML ahora será como
|
||
|
|
||
|
```html
|
||
|
|
||
|
<div id="demo">
|
||
|
<div>Demo</div>
|
||
|
</div>
|
||
|
```
|
||
|
|
||
|
**_CONSIDERACIONES DE SEGURIDAD_**
|
||
|
|
||
|
El valor establecido en `innerHTML` debe provenir de fuentes confiables, ya que Javascript colocará cualquier elemento dentro de ese elemento y se ejecutará como HTML simple.
|
||
|
|
||
|
Ejemplo:
|
||
|
|
||
|
Al establecer un valor de " `<script>alert();</script>` " se activará la función Javascript "alert ()":
|
||
|
|
||
|
```javascript
|
||
|
var element = document.getElementById("demo");
|
||
|
|
||
|
element.innerHTML = "<script>alert();</script>";
|
||
|
```
|
||
|
|
||
|
Este tipo de ataque se llama [Cross Site Scripting, o XSS para abreviar](https://en.wikipedia.org/wiki/Cross-site_scripting) .
|
||
|
|
||
|
Esta es una de las formas más comunes de cometer un ataque XSS. Si quieres aprender un poco más y aprender a defenderte, [echa un vistazo a este recurso](https://xss-game.appspot.com/)
|