什么是 CSS 注入以及如何防止它?

2024-02-15

我听我的朋友谈论这个名为“CSS 注入”的漏洞,但是,我不知道这是什么,一听到它我就想,怎么可能使用 CSS 进行任何恶意活动或攻击?

所以我想知道这个“CSS 注入”漏洞是什么以及如何预防它。


它是什么?

CSS 注入意味着攻击者设法将恶意 CSS 代码上传到您的网站,该网站将在您的访问者浏览器上运行。

危险吗?

写这篇文章是在 2022 年,NO,CSS注入几乎不会影响任何人,因为浏览器已经克服了这个问题,但是note一些使用旧浏览器的用户可能会受到此影响。

我应该做点什么吗?

Yes您应该,即使目前这不是真正的风险,您也应该防止攻击者向您的网站注入恶意软件CSS and JavaScript, JavaScript这非常重要,因为一些漏洞最近被批量处理,并且大多数用户尚未将浏览器更新到最新版本。

如何防护?

你应该永远过滤用户输入免受恶意注入,但额外的保护层是:

所有这一切的解决方案正在使用CSP Header (内容安全策略),它允许您防止浏览器在您的网站上执行恶意代码。

in apache htaccess文件添加以下内容但是模组头应该启用

Header set Content-Security-Policy "default-src 'self';script-src 'self';style-src 'self'; object-src 'none'; frame-ancestors 'none'; form-action 'self';  base-uri 'self';"

注意如果你使用CSS or JavaScript来自另一个域,您不能使用上面的代码。

欲了解更多信息并了解代码中每个单词的访问内容MDN CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy

EDIT:

最简单的例子CSS注入是指攻击者设法向您的网站注入CSS加载外部资产(例如在后台)的代码,这些资产是有效负载,幸运的是,大多数浏览器已经克服了此类漏洞。

background: url(http://somehackerdomain.com/payload...)

另一个简单的例子CSS仍然影响所有现代浏览器的注入是,如果您的网站JavaScript uses a CSS属性值,那么攻击者可以为此属性设置一个新值作为 JavaScript 代码,这可能会窃取 cookie 等。

这些只是一些简单的例子。

有关 CSS 注入的更多信息,请参阅C 尖角 CSS 注入 https://www.c-sharpcorner.com/article/css-injection-exploitation/

保护 cookie 的第三层保护是使用HttpOnly这可以防止JavaScript访问它们。了解更多关于HttpOnly visit HttpOnly https://owasp.org/www-community/HttpOnly

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是 CSS 注入以及如何防止它? 的相关文章

  • 如何防止 CFDocument 中的内容中间发生分页?

    我使用 cfdocument 标签从 html css 动态生成 PDF 文件 有些内容块我不想跨越多个页面 经过一番搜索后 我发现根据文档支持 page break inside 样式 然而 在我的测试中 声明 page break in
  • 如何在 font Awesome 图标链接下方添加添加文本?

    我正在尝试在我的 Blogger 模板中的 font awesome Icons 下添加一些文本 这是我想要实现的目标的图像 我想要实现的外观图片 https i stack imgur com BVYlh png 但到目前为止我已经做到了
  • 如何仅在 css/html 中强制在单词之间换行?

    我只有一段普通的文本 p 标签内的 p div 标签 但只有 Firefox 可以正确显示 Firefox 打破了单词之间的界限 所有其他浏览器都会在单词中间断行 这使得阅读变得困难 这是我的意思的一个例子 火狐浏览器 工作中 This w
  • 如何适应特定子元素的宽度?

    problem 我正在尝试创建一个技能表 我无法问下一个问题为什么 所以我创建了一个新帐户并询问 当前状态 我想将元素的宽度与 meter 也就是说 如何设定区块的标准 meter 子元素 在上面的 gif 中 img meter 我想要保
  • Firefox Placeholder Before CSS 选择器不起作用

    我使用的是最新的firefox 30 0 我正在尝试在必填字段的占位符之前插入红色字体真棒星号 我在 Chrome 中工作没问题 但我在 FF 和 上遇到问题 这是一个说明我的问题的代码笔 http codepen io anon pen
  • 当百分比填充定义元素高度时忽略 max-height

    The max height当内部填充大于最大高度值时 属性值似乎被忽略 例如 在元素上设置此类会导致最大高度被忽略 max height ignored height 0 or auto makes no difference max h
  • 引导行之间的垂直间距

    所以我正在研究布局 为了 响应能力 我决定使用 Bootstrap 现在我猜网格系统有问题 我想要的结果如下 1 4 2
  • 即使在包裹后也具有等宽的弹性项目

    是否可以制作一个像这样的纯 CSS 解决方案 物品有一些min width 它们应该动态增长以填充所有容器宽度 然后换行到新行 列表中的所有项目都应具有相同的宽度 现在看起来是这样的 这就是我希望它看起来像的样子 我已经手动管理这些底部项目
  • 使用@font-face时浏览器下载什么字体

    font face 有点令人困惑 因为所有浏览器都无法决定使用哪种文件格式 下面是我目前正在使用的向网站添加 1 个新字体的方法 您可以看到有 4 个单独的字体文件 我知道每个文件都是因为某些浏览器支持不同的格式 但浏览器是下载所有文件还是
  • 如何在表格列标题处垂直旋转文本

    我用过这个数据表 http www datatables net 在我的网页上 这是fiddle http jsfiddle net fxju7 2 链接我放置代码的地方 我想要 第一个数字第二个数字列应该垂直旋转 我已经做到了 但是 问题
  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 如何使用 jQuery 或 JavaScript 聚焦 或 标签?

    for var i 0 i
  • 如何从 bootstrap-markdown.js 调用 .getContent 和 .parseContent

    我是使用 Bootstrap 插件的新手 刚刚通过代码学院 http www codecademy com en skills make an interactive website 我真的很想用这个很棒的引导 Markdown 插件 ht
  • 更改

    标签中一个单词的颜色

    我正在处理一份 html 文档 并且只想在我的文档中创建一个单词 p 标记不同的颜色 如果不做完全不同的事情 这可能吗 p p tag p p I want to make only THIS word blue p p style dis
  • 删除圆形图像周围的边框

    我有一个圆形图像 png 文件 中间是透明的 我需要将图像内的背景设置为纯色 为此 我将背景设为纯色 然后将border radius 50 但这会产生一条丑陋的小白线 有没有办法摆脱这个问题 或者我必须在图像编辑器中手动为图像着色 div
  • 限制对记录的访问。基于声明的权限是个好主意吗

    在 net 基于声明的身份框架中 如果我想限制用户对某个帐户 特定帐户 123456 执行操作 查看或编辑 我说的是商业实体 例如银行帐户 创建索赔是个好主意吗对于他们可以查看或编辑的每个帐户 一组中有很多索赔有什么缺点吗 系统管理员可能有
  • 使用 CSS 网格布局使网格项内的元素高度相等

    我在长度超过 4 的 div 中有一系列文章 没有任何舍入行标签 我需要将其表示为每行 3 篇文章 列 的表格 可能包含display grid 每篇文章都有页眉 章节和页脚 如何在每行文章内实现每个标题的等高 每个部分的等高以及与文章底部
  • 内嵌显示定义术语和描述

    我正在为页面上的某些元素使用定义列表 并需要它们内联显示 例如 它们normally看起来像 我需要它们看起来像 注意多个 DD 我可以让它们在 moz 中使用 float 来正常工作 但无论我尝试什么 它们都无法在 IE 中工作 我通常会
  • 如何将 Vue.js 作用域样式应用于通过视图路由器加载的组件?

    如何将 Vue js 作用域样式应用于通过以下方式加载的组件
  • 适用于移动设备的响应式订单确认电子邮件?

    我从未见过令人惊叹的订单确认 发票电子邮件 即使是最好的 html5 网站也会发送糟糕的订单确认电子邮件 有时是纯文本 我相信这是因为发票通常需要使用表格来显示购买的物品 这在移动设备上实现起来非常困难 我发现了一些让手机上的表格更易于管理

随机推荐

  • KJUR jws jsrsasign:无法在 JWT.io 上验证 ES256 令牌

    我们正在尝试使用 KJUR jws 库为 Apple Search Ads 制作 JWT 令牌 我们使用的是Apple的API文档 https developer apple com documentation apple search a
  • GridView PageIndexChanging 不起作用

    这似乎是一个很容易问的问题 但我无法在 GridView 中显示项目 这是我的代码 public partial class TestList System Web UI Page protected void Page Load obje
  • 在圆上找到最接近给定点的点的最佳方法

    给定一个点 pX pY 和一个已知圆心 cX cY 和半径 r 的圆 您可以想出最短的代码量来找到圆上最接近 pX pY 我有一些代码可以工作 但它涉及将圆转换为 x cX 2 y cY 2 r 2 其中 r 是半径 形式的方程并使用方程绘
  • 了解代码优先的虚拟属性

    您好 我刚刚学习使用实体框架代码优先 我似乎无法理解一些东西 我根据教程创建了三个模型 public class Course public int CourseID get set public string Title get set
  • python脚本在windows中运行时是什么用户? [复制]

    这个问题在这里已经有答案了 我试图让 python 删除一些目录 但出现访问错误 我认为是python用户帐户没有权限 WindowsError Error 5 Access is denied path 是我运行脚本时得到的结果 我试过了
  • 映射结构:使用“.”作为目标属性 - 目前是否支持?

    我想按如下方式使用映射结构 Mapping target source object1 subobject2 subobject3 public abstract Object4 toObject Object1 object1 作为对象
  • KML 图层限制问题

    我已通过 url 将 6 kml 图层加载到我的网站 以便通过复选框关闭 打开 但我最近注意到 它只允许我在给定时间显示 4 公里 当我选择超过 4 个时 第 5 个和第 6 个不会显示 我选择什么并不重要 它似乎限制我只能显示 4 有人可
  • Asp.net core中ViewComponent之间如何共享ViewData

    我有两个 ViewComponent 我想使用 ViewData 或其他技术来共享一些数据 然后在主视图中使用这些数据 但这不是方法 当两个 ViewComponent 的 if 条件丰富时 每个 ViewComponent 的 ViewD
  • .ics 邀请日历在 Outlook.com 问题中不起作用

    您好 我使用 cakephp 电子邮件发送一封附有 ics 日历的电子邮件 问题是确认按钮 si 完美显示在 yahoo 和 gmail 中 但不在 Outlook com 中 以下是 ics 文件的示例 BEGIN VCALENDAR V
  • DataGridView 单元格编辑十进制/十六进制格式的问题

    我有一个数据网格视图绑定到一个数据表1 16 列定义为Integer 默认单元格样式为十六进制 2 位数字 Format X2 当进入单元格编辑时 我想向用户提供以十进制或十六进制写入值的可能性 十六进制可以写成 例如 0x00 0X01
  • 错误消息显示退出代码-1073741510 [重复]

    这个问题在这里已经有答案了 我正在尝试使用以下 cod 读取 cpuid 信息 但它不起作用 我正在使用 Visual Studio 2010 include stdafx h include
  • 如何从文件列表开始创建电影数据库

    我的家庭服务器上有大量电影 大约 4000 部 文件全部命名为Title Subtitle year extension 我想创建一个包含我所有电影的数据库 即使在 Excel 中也可以 数据库应包含以下列 标题 副标题 如果存在 年份和文
  • 获取redis中存在的所有哈希值

    我在 redis 缓存中有哈希值 如下所示 Hash Key Value hashme 1 Hello World hashme 2 Here Iam myhash 1 Next One 我的目标是在 CLI 中获取哈希值作为输出 如下所示
  • 无法解析符号“LocationServices”

    我正在尝试使用使用用户位置的 android studio 构建一个 android 应用程序 我正在尝试导入 google play services LocationServices api 但它说它无法解析符号 LocationSer
  • Django 表单问题:“WSGIRequest”对象没有属性“get”

    我在 Django 调试视图中收到此错误 WSGIRequest object has no attribute get 这是用于登录脚本的 其中大部分是从管理代码复制的 主要用于练习 调整原因 我在views py中的代码如下 sensi
  • 当 Firestore 文档不存在时处理“权限被拒绝”的正确方法是什么

    我已经为 Firestore 编写了规则 但是 当文档不存在时 它会抛出 权限缺失或不足 错误 例如 firebase firestore collection shipments doc order doc id onSnapshot f
  • 当键名称具有数值时,JSON.parse() 是否真的对属性进行排序?

    这里有很多关于这个问题的帖子 它们都包含很多断言 可以总结如下 永远不能保证对象属性以任何方式排序 JSON parse 从不以任何方式对属性进行排序 显然 我们对上面的 1 没有任何疑问 因此我们可以合理地预期 对于任何操作 属性仅按照它
  • Laravel 5.5 由于存在不活动令牌,页面已过期

    我刚刚使用 php 7 2 在共享主机上部署了我的 laravel 应用程序 应用程序在 DigitalOcean 和我当地的 Homestead 上运行良好 但是当使用 php7 2 托管在共享主机上时 opt alt php72 usr
  • 将 youtube.com 中的视频嵌入到 iPhone 应用程序中

    我正在尝试将 youtube 视频嵌入到我的 iPhone 应用程序中 我正在使用 UIWebView 并将嵌入代码从 youtube 作为 html 字符串加载 所以我有一个带有基本 html 标记的布局 我将这段代码放在那里 问题是视频
  • 什么是 CSS 注入以及如何防止它?

    我听我的朋友谈论这个名为 CSS 注入 的漏洞 但是 我不知道这是什么 一听到它我就想 怎么可能使用 CSS 进行任何恶意活动或攻击 所以我想知道这个 CSS 注入 漏洞是什么以及如何预防它 它是什么 CSS 注入意味着攻击者设法将恶意 C