DOM(Document Object Model)とは、JavaScriptなどのアプリケーションからWEBページ(Document)を操作する仕組みです。以下に詳しい解説があります。
 https://www.ipa.go.jp/files/000024729.pdf
 
上記にあるように、HTMLファイルの中にJavaScriptを記載することで、HTMLファイルの文字を表示を変えることができます。単にjavascriptで書いているだけじゃん、と思った人は、それで間違っていません。知らず知らずのうちに、DOMの仕組みを活用しているのです。

この仕組みを使った、DOMベースのXSS(クロスサイトスクリプティング)にも注意する必要があります。 

DOMを理解するために、上記サイトのサンプルプログラムを実行していただくといいと思います。
<html>
<head>
<title>DOM体験のサンプルページ</title>
</head>
<body>
私が追記しました。ここは書き換わりません。
 <p id="p1">このページはサンプルです。</p>
<script type="text/javascript">
 setTimeout( function(){
  var p1_textnode = document.getElementById('p1').firstChild;
 p1_textnode.data = 'このページはサンプルでした。';
 },5000);
</script>
</body>
</html>

これを実行すると、javascriptがDOMの階層構造にしたがって id="p1"の部分にアクセスして文字を書き換えます。私が追記しました、の部分は書き換わりません。

また、DOMに関しては、以下のサイトが詳しくてわかりやすいです。
https://gihyo.jp/dev/serial/01/javascript-security/0006