什么是 XSS 攻击
XSS 全称是 Cross Site Scripting 跨站脚本 XSS 攻击是指黑客往 HTML 文件中或者 DOM 中注入恶意脚本,从而在用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段;
如果页面被注入了恶意 JavaScript 脚本,恶意脚本都能做哪些事情:
- 可以窃取 Cookie 信息,通过 document.cookie 获取 Cookie 信息,将数据发送给恶意服务器;
- 可以监听用户行为;
- 可以通过修改 DOM 伪造假的登录窗口,用来欺骗用户输入用户名和密码等信息;
- 还可以在页面内生成浮窗广告,这些广告会严重地影响用户体验;
攻击
存储型 XSS
恶意用户提交了恶意内容(script 脚本)到服务器
服务器没有识别,保存了恶意内容到数据库
正常用户访问服务器,服务器在不知情的情况下,给予了之前的恶意内容,让正常用户遭到攻击
反射型 XSS
恶意用户分享了一个正常网站的链接,链接中带有恶意内容
http://localhost:3000/?xss=<script>alert('你被xss攻击了')</script>
正常用户点击了该链接
服务器在不知情的情况,把链接的恶意内容读取了出来,放进了页面中,让正常用户遭到攻击
DOM 型 XSS
基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的;
具体来讲,黑客通过各种手段将恶意脚本注入用户的页中,比如:通过网络劫持在页面传输过程中修改 HTML 页面的内容,这种劫持类型很多,有通过 WiFi 路由器劫持的,有通过本地恶意软件来劫持的;
它们的共同点是在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据;
防御
-
使用 HttpOnly 属性禁止读取 cookie;
面试题
介绍 XSS 攻击
参考答案:
- XSS 是指跨站脚本攻击;攻击者利用站点的漏洞,在表单提交时,在表单内容中加入一些恶意脚本,当其他正常用户浏览页面,而页面中刚好出现攻击者的恶意脚本时,脚本被执行,从而使得页面遭到破坏,或者用户信息被窃取;
- 要防范 XSS 攻击,需要在服务器端过滤脚本代码,将一些危险的元素和属性去掉或对元素进行 HTML 实体编码,使用 HttpOnly 属性禁止读取 cookie;
node👉 CSRF 攻击和防御
上一篇