现代 Web 网页通常都是动态的,内容根据数据库来生成。举个例子,您在某个网站上发表一条评论,评论内容会保存在数据库中;当您或其他用户浏览评论时,后端需要查询数据库,最终生成可供浏览的网页。
根据数据生成网页,就是网页渲染,通常可以分为两种:
- 服务端渲染,即在后端渲染好 HTML 页面,再返回给浏览器;
- 客户端渲染,即在前端通过 JS 脚本操作 DOM 节点,动态调整 HTML 网页;
不管采用哪种渲染方式,本质上都是将数据拼接在 HTML 网页,再呈现给用户。数据通常是由用户输入的,比如评论。如果被别有用心的人利用,注入恶意代码进行攻击,该怎么办呢?想想 SQL注入 攻击!