56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | title: HTML Dom Innerhtml Property | ||
|  | --- | ||
|  | ## HTML Dom Innerhtml Property
 | ||
|  | The `innerHTML` prop return the HTML content inside a selected element and also let you define a new HTML content. | ||
|  | 
 | ||
|  | ***GET ELEMENT CONTENT*** | ||
|  | 
 | ||
|  | ```html | ||
|  | <div id="demo"> | ||
|  |   <p>Demo</p> | ||
|  | </div> | ||
|  | ``` | ||
|  | 
 | ||
|  | ```javascript | ||
|  | var element = document.getElementById("demo"); | ||
|  | console.log(element.innerHTML) //logs <p>Demo</p> | ||
|  | ``` | ||
|  | 
 | ||
|  | ***SET ELEMENT CONTENT*** | ||
|  | 
 | ||
|  | ```html | ||
|  | <div id="demo"></div> | ||
|  | ``` | ||
|  | 
 | ||
|  | ```javascript | ||
|  | var element = document.getElementById("demo"); | ||
|  | element.innerHTML = "<div>Demo</div>"; | ||
|  | ``` | ||
|  | The HTML now will be like | ||
|  | 
 | ||
|  | ```html | ||
|  | <div id="demo"> | ||
|  |   <div>Demo</div> | ||
|  | </div> | ||
|  | ``` | ||
|  | 
 | ||
|  | ***SECURITY CONSIDERATIONS*** | ||
|  | 
 | ||
|  | The value that's set to `innerHTML` should come from trusted sources, since Javascript will put anything inside that element and it will be run as plain HTML. | ||
|  | 
 | ||
|  | Example: | ||
|  | 
 | ||
|  | Setting a "`<script>alert();</script>`" value will cause the Javascript "alert()" function to be fired: | ||
|  | 
 | ||
|  | ```javascript | ||
|  | 
 | ||
|  | var element = document.getElementById("demo"); | ||
|  | 
 | ||
|  | element.innerHTML = "<script>alert();</script>"; | ||
|  | ``` | ||
|  | 
 | ||
|  | This type of attack is called [Cross Site Scripting, or XSS for short](https://en.wikipedia.org/wiki/Cross-site_scripting). | ||
|  | 
 | ||
|  | This is one of the most common ways of committing an XSS attack. If you want to learn a little bit more and learn to defend against it, [check out this resource](https://xss-game.appspot.com/) |