【浏览器安全机制】一文带你了解内容安全策略(CSP)及沙箱环境_对于执行函数,可以使用沙箱函数或者csp(内容安全策略)来限制脚本的执行

Content Security Policy Example


* `default-src`指令设置默认的内容来源,这里设置为`'self'`,表示只允许从同源加载资源。
* `script-src`指令指定脚本的内容来源,这里设置为`'self'`和`https://trusted-scripts.com`,表示只允许从同源和`https://trusted-scripts.com`加载脚本。
* `style-src`指令指定样式表的内容来源,这里设置为`'self'`和`https://trusted-styles.com`,表示只允许从同源和`https://trusted-styles.com`加载样式表。
* `img-src`指令指定图像的内容来源,这里设置为`'self'`和`data:`,表示只允许从同源和`data:`加载图像。
* `font-src`指令指定字体的内容来源,这里设置为`'self'`和`https://trusted-fonts.com`,表示只允许从同源和`https://trusted-fonts.com`加载字体。
* `connect-src`指令指定网络请求的内容来源,这里设置为`'self'`和`https://trusted-api.com`,表示只允许从同源和`https://trusted-api.com`进行网络请求。
* `frame-src`指令指定内嵌框架的内容来源,这里设置为`https://trusted-frames.com`,表示只允许加载来自`https://trusted-frames.com`的内嵌框架。


根据这个策略,页面中的各种资源将根据指令定义的来源进行加载和执行。例如,脚本、样式表、图像、字体等资源只能从特定的来源加载,而其他来源的资源将被拦截或阻止加载。


举个实例:


将img-src指令修改为`https://profile-avatar.csdnimg.cn`,这样浏览器就会允许从这个来源加载图像。同时,在页面中添加一个`<img>`元素,其中的src属性设置为`https://profile-avatar.csdnimg.cn/9d664df290064eafb7ae1146780b38e4_2301_77485708.jpg!1`,以加载这个特定的图像。



Content Security Policy Example

Content Security Policy Example

Image from CSDN

![在这里插入图片描述](https://img-blog.csdnimg.cn/10713fc5009e46aeb1725e5f6896b576.png#pic_center)


回显如下:


![在这里插入图片描述](https://img-blog.csdnimg.cn/86415f853d0b4f9b9e3c582a7d0fbdd2.png#pic_center)




---


## 沙箱环境


### 概念


沙箱环境是一种安全机制,它用于隔离和限制应用程序的运行环境,以防止恶意代码对系统造成损害。在沙箱环境中,应用程序被限制在一个封闭的环境中运行,与操作系统和其他应用程序相互隔离,从而减少了安全风险。


![在这里插入图片描述](https://img-blog.csdnimg.cn/78660d67759343458cdc5bcef641dac6.png#pic_center)


### 基本思想


沙箱环境的基本思想可以总结如下:


1.沙箱环境通过进程隔离、资源限制和网络隔离等机制,将应用程序与其他进程、系统资源以及外部网络相互隔离。这种隔离性确保了应用程序在自己的封闭环境中运行,减少了与其他应用或系统之间的相互影响。


2.沙箱环境通常会限制应用程序的权限,包括系统权限、网络访问权限、文件系统访问权限等。通过限制权限,沙箱环境可以阻止恶意代码执行潜在危险的操作,从而保护系统的安全。


![在这里插入图片描述](https://img-blog.csdnimg.cn/675c3130ca6945ed81aa36c5707bd482.webp#pic_center)


3.沙箱环境可以监控应用程序的行为和活动,并进行日志记录。这有助于检测和识别恶意行为,并及时采取必要的应对措施。


4.沙箱环境可以对应用程序进行验证和审查,确保其来源可信。这可以防止恶意应用程序的入侵,并增加对应用程序的可靠性保证。


### 实现技术


沙箱环境通常采用以下技术来实现:


1. 进程隔离


通过将应用程序运行在一个独立的进程中,使它与其他进程相互隔离,防止恶意代码对主系统的影响。沙箱环境可以限制应用程序的系统权限,并监控其运行活动。


**举个例子:** 虚拟机技术可以为每个虚拟机分配独立的资源,使其在自己的虚拟环境中运行,与其他虚拟机和主机系统相互隔离。这样,即使一个虚拟机被恶意代码感染或崩溃,也不会影响其他虚拟机和主机系统的稳定性。


2. 资源限制


沙箱环境可以限制应用程序对系统资源(如内存、CPU、磁盘空间)的访问和使用,以防止应用程序滥用资源或对其他应用程序造成干扰。


**举个例子:** 操作系统可以使用访问控制列表(Access Control List,ACL)来限制应用程序对系统文件和资源的访问权限。这样,恶意应用程序将无法读取、修改或删除关键系统文件,从而保护系统的安全。


3. 网络隔离


沙箱环境可以限制应用程序对网络的访问,并阻止恶意代码与外部系统进行通信。这有助于防止未经授权的数据传输或攻击。


**举个例子:** 网络防火墙可以监视网络流量,检测和记录异常的连接和恶意行为。这样的监控和日志记录有助于快速识别和响应潜在的攻击,并采取必要的安全措施。


4. 文件系统隔离


沙箱环境可以提供一个虚拟的文件系统,使应用程序只能访问指定的文件和目录,并阻止对其他系统文件的访问。这可以增加对系统文件完整性和安全性的保护。


**举个例子:** 应用商店可以对应用程序进行安全审查,确保其不包含恶意代码、广告欺诈或其他安全风险。这样用户下载的应用程序就具有一定的安全保证,降低了恶意应用程序的入侵风险。


### 实例分享



import subprocess
import sys
import os

def run_sandboxed_code(code):
sandbox_env = dict(os.environ)
sandbox_env[‘PYTHONPATH’] = ‘’ # 清空PYTHONPATH环境变量,以限制模块访问

try:
    with open('sandboxed\_code.py', 'w', encoding='utf-8') as file:
        file.write(code)  # 将代码写入文件

    # 运行沙箱内代码
    subprocess.check_call([sys.executable, 'sandboxed\_code.py'], env=sandbox_env)
except subprocess.CalledProcessError as e:
    print("沙箱内代码运行错误:", e)
except Exception as ex:
    print("异常:", ex)
finally:
    os.remove('sandboxed\_code.py')  # 删除临时文件

要在沙箱环境中运行的代码

code = ‘’’

-*- coding: utf-8 -*-

print(“沙箱环境中运行的代码”)
import os
import sys
print(“当前目录:”, os.getcwd())
print(“Python版本:”, sys.version)
‘’’

run_sandboxed_code(code)


在沙箱环境中,首先将提供的代码写入一个临时文件sandboxed\_code.py,并执行该文件。如果代码执行过程中发生错误,将捕获异常并打印错误信息。最后,会删除临时文件。
## 最后

**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。**

![img](https://img-blog.csdnimg.cn/img_convert/3989601338258ee9ed91fecd080d7dad.png)

![img](https://img-blog.csdnimg.cn/img_convert/0b3ec6f6f4afe0159eed8a36a55881f3.png)

![img](https://img-blog.csdnimg.cn/img_convert/0411cec94ad74b5472ab2835acb8d23d.png)

![img](https://img-blog.csdnimg.cn/img_convert/311034fcde4e5292a7cd5afd7960e3f9.png)

![img](https://img-blog.csdnimg.cn/img_convert/a44260429f1e288e978c1dcdd90cb820.png)

 

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!**

[**如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618653875)

**由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!**

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值