首页 > 其他分享 >WEB安全:Content Security Policy (CSP) 详解

WEB安全:Content Security Policy (CSP) 详解

时间:2024-05-30 17:31:44浏览次数:27  
标签:脚本 WEB XSS self Content Policy 内联 src CSP

Content Security Policy (CSP) 是一种强大的网页安全机制,用于防止跨站脚本 (XSS) 和其他注入攻击。通过设置一系列的内容安全策略,CSP 可以限制网页可以加载的资源,从而保护用户数据和网站的安全性。

在这里插入图片描述

什么是 XSS 攻击?

跨站脚本攻击 (XSS) 是一种常见的安全漏洞,攻击者通过注入恶意脚本来劫持用户会话、破坏网站内容或进行钓鱼攻击。XSS 攻击主要分为三类:

  1. 存储型 XSS:恶意脚本被永久存储在目标服务器上(如数据库),并在用户访问时执行。
  2. 反射型 XSS:恶意脚本通过 URL 参数或表单提交传递,并在服务器响应中反射给用户。
  3. DOM 型 XSS:恶意脚本通过修改客户端的 DOM 结构直接在浏览器中执行。

CSP 防止 XSS 的机制

1. 限制资源加载来源

CSP 可以通过限制资源加载的来源,阻止从不可信来源加载的恶意脚本。例如,script-src 'self' 指定只允许加载同源的脚本,防止外部恶意脚本注入。

Content-Security-Policy: script-src 'self'
2. 禁止内联脚本

内联脚本(直接在 HTML 中嵌入的 <script> 标签)是 XSS 攻击的常见载体。CSP 可以通过禁止内联脚本来阻止这种攻击。

Content-Security-Policy: script-src 'self'; style-src 'self'; default-src 'self'

如果需要使用内联脚本,可以使用 nonce(一次性令牌)或 hash(哈希值)来明确允许特定的内联脚本。

<script nonce=

标签:脚本,WEB,XSS,self,Content,Policy,内联,src,CSP
From: https://blog.csdn.net/h_midnight/article/details/139270476

相关文章

  • [论文阅读] FontDiffuser@ One-Shot Font Generation via Denoising Diffusion with M
    Pretitle:FontDiffuser:One-ShotFontGenerationviaDenoisingDiffusionwithMulti-ScaleContentAggregationandStyleContrastiveLearningaccepted:AAAI2024paper:https://arxiv.org/abs/2312.12142code:https://github.com/yeungchenwa/FontDiffuserref:......
  • golang开发 gorilla websocket的使用
    很多APP都需要主动向用户推送消息,这就需要用到长连接的服务,即我们通常提到的websocket,同样也是使用socket服务,通信协议是基本类似的,在go中用的最多的、也是最简单的socket服务就是gorilla/websocket,它有21.1K的star,足以说明它的受欢迎程度,它的github地址是https://github.com/g......
  • asp.net web api 接口内调用多个远程接口优化
    提高查询速度的远程接口优化;[ApiController][Route("[controller]")]publicclassShippingCostController:ControllerBase{privatereadonlyShippingCostService_shippingCostService;publicShippingCostController(ShippingCostServiceshippingCostServ......
  • 高德地图在web端的使用
    1、高德地图开放平台申请key和安全密钥 2、安装高德地图加载器使用npm 安装:npmi@amap/amap-jsapi-loader--save使用yarn 安装:yarnadd@amap/amap-jsapi-loader--save3、直接使用<template><divid="amapcontainer"style="width:800px;height:620px"></div......
  • asp.net web api 接口控制并发研究(临时性方法)
    有一个业务场景,接口的业务逻辑非常复杂,对数据库的压力比较大,希望限制下接口的并发数量,研究了下:usingMicrosoft.AspNetCore.Mvc;usingSystem.Collections.Concurrent;usingSystem.Threading.Tasks;namespaceTestBingFa.Controllers{[ApiController][Route("[c......
  • 关于PHP的webshell免杀小结
    0X00普通的一句话木马(适用于CTF和小站)<?phpeval($_POST['a']);?>//函数的相似替换<?phpassert($_POST['a']);?> <?php@eval($_POST['110']);?>与第一个一句话木马相比多了一个"@"字符,我们发现这个字符的含义是在php语法中表示抑制错误信息即使有错误也不返回;属于不......
  • Particles.js:为Web项目增添动态粒子效果
    Particles.js:为Web项目增添动态粒子效果示例介绍Particles.js是一个轻量级的JavaScript库,用于在Web页面上创建和管理动态粒子效果。它允许开发者通过简单的配置文件实现复杂的动画效果,为网页增添视觉吸引力。粒子可以是点、线、图像等,能够根据用户交互进行动态变化,Particles.......
  • 如何隐藏 Firefox 窗口(Selenium WebDriver)?
    在Python中使用SeleniumWebDriver隐藏Firefox窗口通常涉及到配置FirefoxOptions来禁用其图形界面的显示。以下是一个详细的步骤和代码示例:1.首先,确保你已经安装了selenium库,以及geckodriver(适用于Firefox浏览器)。如果还没有安装,可以通过pip进行安装:```bashpipinstallsel......
  • Tron_CTF2024新生赛 WEB
    web业余憨憨简单复现一下,不过有两题环境挂了s1mple_php题目easy我的解答:源码:<?phphighlight_file(__FILE__);include("flag.php");$c=$_POST['c'];$v=$_GET['v'];$e=$_GET['e'];if(isset($_GET['v'])andisset($_GET['......
  • 在Linux中,如何进行Web服务器调优?
    在Linux中进行Web服务器调优主要涉及以下几个方面:选择合适的Web服务器软件、配置Web服务器设置、优化网络和硬件资源、以及确保安全性。以下是一些针对常见Web服务器软件(如Apache和Nginx)的调优步骤:1.对Apache进行调优安装Apache:sudoapt-getupdatesudoapt-getinstalla......