【读书】《白帽子讲web安全》个人笔记Ⅱ-1

目录

第二篇 客户端脚本安全

第2章 浏览器安全

2.1同源策略

2.2浏览器沙箱

2.3恶意网址拦截

2.4高速发展的浏览器安全


第二篇 客户端脚本安全

第2章 浏览器安全

近年来随着互联网的发展,人们发现浏览器才是互联网最大的入口,绝大多数用户使用互联网的工具是浏览器。(颇具年代感的开卷语)

“浏览器天生就是一个客户端。”

2.1同源策略

浏览器出于安全考虑,对同源请求放行,对异源请求限制,这些限制规则统称为同源策略。

浏览器对标签发出的跨域请求轻微限制,对AJAX发出的跨域请求严厉限制。

对于客户端web安全的学习与研究来说,深入理解同源策略非常重要,是后续学习的基础。

浏览器的同源策略,限制了来自不同源的“document”或脚本,对当前“document”读取或设置某些属性。

影响“源”的因素有:host(域名或IP地址,如果是IP地址则看作一个根域名)、子域名、端口、协议。

XMLHttpRequest受到同源策略的约束,不能跨域访问资源,在AJAX应用的开发中尤其需要注意这一点。如果XMLHttpRequest能够跨域访问资源,则可能会导致一些敏感数据泄露,比如CSRF的token,从而导致发生安全问题。

在浏览器中,<script>、<img>、<iframe>、<link>、<form>、<audio>、<video>等标签都可以跨域加载资源,而不受同源策略的限制。这些带“src”属性加载的资源,浏览器限制了js的权限,使其不能读、写返回的内容。

2.2浏览器沙箱

在网页中植入一段恶意代码,利用浏览器漏洞执行任意代码的攻击方式,在黑客圈子里被称为“挂马”。“挂马”是浏览器需要面对的一个主要威胁。

以下是一个简单的例子来说明挂马和XSS的区别:

假设有一个网站,其中有一个留言板功能,用户可以在上面留言。攻击者想要攻击使用该网站的用户,他们可以通过以下方式进行攻击:

  1. 挂马攻击:攻击者入侵该网站的后台,将恶意代码植入到留言板页面中。当用户访问留言板页面时,恶意代码会自动执行,从而攻击用户的计算机或移动设备

  2. XSS攻击:攻击者在留言板上留下一个恶意脚本,当其他用户访问该留言板页面时,恶意脚本会在其浏览器中执行。恶意脚本可能会窃取用户的会话信息等。

Sandbox即沙箱,计算机技术发展到今天,Sandbox已经成为泛指“资源隔离类模块”的代名词。Sandbox的设计目的一般是为了让不可信任的代码运行在一定的环境中,限制不可信任的代码访问隔离区外的资源。如果一定要跨越Sandbox边界产生数据交换,则只能通过指定的数据通道,比如经过封装的API来完成,在这些API中会严格检查请求的合理性。

2.3恶意网址拦截

恶意网址拦截的工作原理很简单,一般都是浏览器周期性地从服务器端获取一份最新的恶意网址黑名单,如果用户上网时访问的网址存在于此黑名单中,浏览器就会弹出一个警告页面。

常见的恶意网址分为两类:一类是挂马网站,这些网站通常包含有恶意脚本,在用户电脑中植入木马;另一类是钓鱼网站,通过模仿知名网站的相似页面来欺骗用户。

2.4高速发展的浏览器安全

微软在IE8中推出了XSS Filter功能,用以对抗反射型XSS。当用户访问的URL中包含了XSS攻击的脚本时,IE就会修改其中的关键字符使得攻击无法成功完成,并对用户弹出提示框。

Firefox推出了Content Security Policy(CSP)。这一策略做法时由服务器端返回一个http头,并在其中描述页面应该遵守的安全策略。(这种自定义的语法必须由浏览器支持并实现

除了这些安全功能外,浏览器的用户体验也越来越好,随之而来的是许多标准定义之外的“友好”功能(如畸形URL修正),但很多程序员并不知道这些新功能,从而可能导致一些安全隐患。

浏览器加载的插件也是浏览器安全需要考虑的一个问题,扩展和插件极大地丰富浏览器功能,除了插件可能存在漏洞外,插件本身也可能会有恶意行为。扩展和插件的权限都高于页面js的权限,比如可以进行一些跨域网络请求等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Flutter]WebPlatform上运行遇到的问题总结

[Flutter]WebPlatform上运行遇到的问题总结 目录 [Flutter]WebPlatform上运行遇到的问题总结 写在开头 正文 Q1、file_version_info.dart Q2、不兼容判断 Q3、跨域问题 Q4、flutter clean &#xff0c;无法删除build文件夹 其他 写在结尾 写在开头 Flutter项目已能在…

nvidia-smi 完整查看显卡型号

当我们在使用nvidia-smi查看显卡的型号的时候&#xff0c;会发现出现如下问题&#xff1a; 可以看到我们此时无法看到显卡的准确型号&#xff0c;只能看到NVIDIA GeForce ... 解决方法&#xff1a;使用如下命令即可完整显示显卡型号 nvidia-smi -L 如下所示&#xff1a;

前端 富文本编辑器原理

富文本编辑器是一种用于编辑和展示富文本内容&#xff08;包括文字、图片、视频等&#xff09;的工具。它通常提供了类似于Microsoft Word的功能&#xff0c;使用户可以对文本进行格式化、插入图片和链接、调整字体样式等操作。在前端开发中&#xff0c;我们可以使用JavaScript…

线性代数 --- 为什么LU分解中L矩阵的行列式一定等于正负1?

以下是关于下三角矩阵L的行列式一定等于-1的一些说明 笔者的一些话(写在最前面)&#xff1a; 这是一篇小文&#xff0c;是我写的关于求解矩阵行列式的一篇文章中的一部分。之所以把这一段专门提溜出来&#xff0c;是因为这一段相对于原文是可以完全独立的&#xff0c;也是因为我…

前端 js/浏览器/node /js 引擎的事件循环机制,宏任务、微任务

首先我们知道js是单线程的&#xff0c;所以有了事件循环机制来处理异步任务&#xff0c; 我们一般说的事件循环机制指 js 引擎的事件循环机制&#xff0c;js是一个编程语言&#xff0c;哪来的事件循环&#xff0c;前端常见的 js 引擎有浏览器和node。 所以在面试中问道【你知…

代码随想录训练营第五十九天| ● 503.下一个更大元素II ● 42. 接雨水

503.下一个更大元素II 这道题和 739. 每日温度 几乎如出一辙&#xff0c;可以自己尝试做一做 代码随想录 这道题是循环数组&#xff0c;因此在遍历时要遍历nums.size()*2次&#xff0c;然后再读取nums中的元素时要使用i % nums.size()来得到对应的下标。 vector<int> ne…

吉他打谱软件Guitar Pro8苹果Mac电脑简体中文特别版

Guitar Pro 8 Mac是一款吉他编曲学习软件&#xff0c;用于吉他、贝和其他弦乐器的制谱和演奏&#xff0c;这是一个多轨编辑器&#xff0c;具有集成的 MIDI 编辑器、合唱绘图仪、吉他、节拍器和其他音乐家工具。它使您能够编辑吉他、贝司和尤克里里、乐谱、指法谱&#xff0c;并…

第11章 GUI Page462~476 步骤二十三,二十四,二十五 Undo/Redo ③实现“Undo/Redo”菜单项

工程六 添加“编辑”菜单和子菜单 菜单ID分别为 idMenuEditUndo 和 idMenuEditRedo 热键&#xff08;快捷键&#xff09;分别为CtrlZ 和 CtrlShiftZ 变量名分别为 MenuItemEditUndo 和 MenuItemEditRedo 分别添加事件 ActionLink类增加成员函数 运行效果&#xff1a;“添加…

【LMM 016】3D-LLM:将 3D 点云特征注入 LLM

论文标题&#xff1a;3D-LLM: Injecting the 3D World into Large Language Models 论文作者&#xff1a;Yining Hong, Haoyu Zhen, Peihao Chen, Shuhong Zheng, Yilun Du, Zhenfang Chen, Chuang Gan 作者单位&#xff1a;University of California, Los Angeles, Shanghai J…

操作系统----期末判断题大全

目录 操作系统----期末判断题大全 三、判断题 操作系统----期末判断题大全 三、判断题 1&#xff0e; 系统调用与程序级的子程序调用是一致的。&#xff08; &#xff09; 【答案】错 2&#xff0e; I/O控制方式不断发展的推动因素之一…

服务器的关键参数指标

服务器的关键参数指标 5.1 操作系统 5.1.1 Windows Server 重要版本 Windows NT Server 4.0、Windows 2000 Server、Windows Server 2003、Windows Serve2003 R2、Windows Server 2008、Windows Server 2008 R2 、Windows Server 2012...... Windows服务器操作系统派应用&#…

ORACLE模拟业务最小测试用例01

环境&#xff1a;RHEL6.4 Oracle 11.2.0.4 1.创建业务用户表空间2.创建业务用户3.赋予用户权限4.创建业务表5.创建索引6.业务查询SQL7.删除业务用户及数据8.删除业务表空间 1.创建业务用户表空间 假设使用了OMF管理&#xff0c;不需要明确指定数据目录(判定是否使用了OMF技…

C#-委托

委托类型 (delegate type) 表示对具有特定参数列表和返回类型的方法的引用。通过委托&#xff0c;我们能够将方法作为实体赋值给变量和作为参数传递。委托类似于在其他某些语言中的函数指针的概念&#xff0c;但是与函数指针不同&#xff0c;委托是面向对象的&#xff0c;并且是…

C# Emgu.CV4.8.0读取rtsp流分段保存

【官方框架地址】 https://github.com/emgucv/emgucv 【算法介绍】 EMGU CV&#xff08;Emgu Computer Vision&#xff09;是一个开源的、基于.NET框架的计算机视觉库&#xff0c;它提供了对OpenCV&#xff08;开源计算机视觉库&#xff09;的封装。EMGU CV使得在.NET应用程序…

模拟算法(模拟算法 == 依葫芦画瓢)万字

模拟算法 基本思想引入算法题替换所有的问号提莫攻击Z字形变换外观数列数青蛙 基本思想 模拟算法 依葫芦画瓢解题思维要么通俗易懂&#xff0c;要么就是找规律&#xff0c;主要难度在于将思路转换为代码。 特点&#xff1a;相对于其他算法思维&#xff0c;思路比较简单&#x…

827 最大人工岛

hard题目&#xff0c;十分困难哈&#xff0c;不是简单的岛屿套路&#xff0c;而是要经历过两次遍历&#xff0c;先一次遍历岛屿再一次遍历海洋 题目 给你一个大小为 n x n 二进制矩阵 grid 。最多 只能将一格 0 变成 1 。 返回执行此操作后&#xff0c;grid 中最大的岛屿面积…

K8S中的环境变量

官网 https://kubernetes.io/zh-cn/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ 利用环境变量(env.value or env.valueFrom)配置容器应用 在 Kubernetes 中使用此类镜像启动容器时,也可以在 Pod 资源或 Pod 模板资源的定义中,为容…

AOP切面记录日志-实操

前言 记录日志的就是把很多重要的数据给记录下来&#xff0c;写到数据库中&#xff1b;可以写一个方法&#xff0c;组装好之日信息的参数穿进去&#xff0c;但这样做不是很优雅&#xff0c;因为对于日志来说&#xff0c;不是业务逻辑代码的一部分&#xff0c;不应该影响到业务代…

前端学习笔记 5:大事件

前端学习笔记 5&#xff1a;大事件 本文将学习一个示例项目&#xff08;大事件&#xff09;的前端搭建过程。 1.准备工作 1.1.创建工程 创建一个名称为big-event的 Vue3 项目&#xff0c;具体可以参考这篇文章。 1.2.安装插件 安装 ElementPlus&#xff1a; npm install…

【操作系统xv6】学习记录5--实验1 Lab: Xv6 and Unix utilities

ref:https://pdos.csail.mit.edu/6.828/2020/xv6.html 实验&#xff1a;Lab: Xv6 and Unix utilities 环境搭建 实验环境搭建&#xff1a;https://blog.csdn.net/qq_45512097/article/details/126741793 搭建了1天&#xff0c;大家自求多福吧&#xff0c;哎。~搞环境真是折磨…