浏览器基础原理-安全: 跨站脚本攻击(XSS)

简介: 浏览器基础原理-安全: 跨站脚本攻击(XSS)

XSS 跨站脚本 (Cross Site Scripting):


概念:


XSS 攻击是指黑客往 HTML 文件中或者 DOM 中注入恶意脚本,从而在用户浏览页面时利用注入的恶意脚本对用户实施攻击的一种手段。


实现方式:


起初,这种攻击通过跨域来实现的,所以叫“跨域脚本”。但是发展到现在,往 HTML 文件中注入恶意代码的方式越来越多了.


作用:


1.窃取Cookie信息

2.监听用户行为

3.修改DOM来伪造页面, 比如登陆窗口

4.页面内生成悬浮广告


恶意脚本的注入方式:


1.存储型XSS攻击


攻击流程:


▪首先黑客利用站点漏洞将一段恶意 JavaScript 代码提交到网站的数据库中;

▪然后用户向网站请求包含了恶意 JavaScript 脚本的页面;

▪当用户浏览该页面的时候,恶意脚本就会将用户的 Cookie 信息等数据上传到服务器。


举例: 比如2015年的喜马拉雅爆出的存储型XSS攻击, 黑客通过设置用户专辑名称的方式导入恶意程序, 从而当其他用户打开专辑时, 就可以获取用户的Cookie等数据


2.反射型XSS攻击


攻击流程:


用户将一段含有恶意代码的请求提交给 Web 服务器,Web 服务器接收到请求时,又将恶意代码反射给了浏览器端


举例: 黑客通过 QQ 群或者邮件等渠道诱导用户去点击这些恶意链接


注意: 服务器不会存储反射型XSS攻击的恶意脚本


3.基于DOM的XSS攻击


攻击流程:


基于 DOM 的 XSS 攻击是不牵涉到页面 Web 服务器的. 在 Web 资源传输过程或者在用户使用页面的过程中修改 Web 页面的数据。


举例: 比如通过网络劫持在页面传输过程中修改 HTML 页面的内容. 通过WiFi路由器劫持, 通过本地恶意软件劫持.


阻止XSS攻击:


1.服务器对输入脚本进行过滤或者转码


比如把传输过来的含有


参考: 极客时间-浏览器工作原理与实践


相关文章
|
2月前
|
JavaScript 安全 前端开发
js开发:请解释什么是XSS攻击和CSRF攻击,并说明如何防范这些攻击。
XSS和CSRF是两种常见的Web安全威胁。XSS攻击通过注入恶意脚本盗取用户信息或控制账户,防范措施包括输入验证、内容编码、HTTPOnly Cookie和CSP。CSRF攻击则诱使用户执行未经授权操作,防范手段有CSRF Tokens、双重验证、Referer检查和SameSite Cookie属性。开发者应采取这些防御措施并定期进行安全审计以增强应用安全性。
25 0
|
21天前
|
缓存 安全 JavaScript
前端安全:Vue应用中防范XSS和CSRF攻击
【4月更文挑战第23天】本文探讨了在Vue应用中防范XSS和CSRF攻击的重要性。XSS攻击通过注入恶意脚本威胁用户数据,而CSRF则利用用户身份发起非授权请求。防范措施包括:对输入内容转义、使用CSP、选择安全的库;采用Anti-CSRF令牌、同源策略和POST请求对抗CSRF;并实施代码审查、更新依赖及教育团队成员。通过这些实践,可提升Vue应用的安全性,抵御潜在攻击。
|
14天前
|
存储 安全 JavaScript
【PHP开发专栏】PHP跨站脚本攻击(XSS)防范
【4月更文挑战第30天】本文探讨了Web开发中的XSS攻击,解释了其原理和分类,包括存储型、反射型和DOM型XSS。XSS攻击可能导致数据泄露、会话劫持、网站破坏、钓鱼攻击和DDoS攻击。防范措施包括输入验证、输出编码、使用HTTP头部、定期更新及使用安全框架。PHP开发者应重视XSS防护,确保应用安全。
|
29天前
|
安全 JavaScript Go
跨站脚本攻击(XSS)防护在Django中的应用
【4月更文挑战第15天】本文介绍了Django如何防范XSS攻击。Django模板引擎自动转义HTML以防止恶意脚本,提供`mark_safe`函数和CSRF防护。此外,建议开发者验证清理用户输入、使用内容安全策略、更新库以及遵循安全编码实践来增强防护。通过这些措施,开发者能构建更安全的Web应用。
|
22天前
|
JavaScript
浏览器插件crx文件--JS混淆与解密
浏览器插件crx文件--JS混淆与解密
21 0
|
1月前
|
JavaScript 前端开发 UED
JS:如何获取浏览器窗口尺寸?
JS:如何获取浏览器窗口尺寸?
49 1
|
4月前
|
JavaScript 前端开发 算法
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
Node.js中的process.nextTick与浏览器环境中的nextTick有何不同?
|
4月前
|
JavaScript 前端开发 小程序
js 实现浏览器下载视频2种方法
js 实现浏览器下载视频2种方法
489 0
|
6月前
|
JSON JavaScript 前端开发
基于promise用于浏览器和node.js的http客户端的axios
基于promise用于浏览器和node.js的http客户端的axios
39 0
|
5月前
|
Web App开发 JavaScript
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
Vue 项目中使用 debugger 在 chrome 谷歌浏览器中失效以及 console.log 指向去了 vue.js 代码
341 0