首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我应该如何规避CSS的图像URL?

我应该如何规避CSS的图像URL?
EN

Stack Overflow用户
提问于 2014-09-01 14:24:22
回答 4查看 9.4K关注 0票数 14

我有一个div,它将从用户选择的URL接收CSS背景图像,如下所示:

background-image: url("/* user specified URL here*/")

我应该如何规避URL,以便能够安全地嵌入到CSS中?逃避引号够了吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-09-01 15:01:17

逃避引号够了吗?

不,你也应该担心反斜杠和换行符。

以下是双引号URI的CSS语法:http://www.w3.org/TR/CSS21/grammar.html#scanner

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"([^\n\r\f\\"]|\\{nl}|{escape})"

{nl}在哪里

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
\n|\r\n|\r|\f

{escape}是一个反斜杠转义字符。所以后面的反斜杠会破坏你的CSS。一个非转义的换行符。

我强烈建议删除所有空白,最后转义"\

票数 4
EN

Stack Overflow用户

发布于 2015-11-05 01:48:04

如果要通过JS设置背景url,那么正确和安全的方法是使用encodeURI()和用引号包装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
node.style.backgroundImage = 'url("' + encodeURI(url) + '")';
票数 16
EN

Stack Overflow用户

发布于 2017-10-06 18:51:07

因为您需要插入到CSS中的用户数据可以被看作是一个URL,而不仅仅是一个字符串,所以您只需要确保它是正确的URL编码。

这是安全的,因为格式良好的URL不包含CSS字符串中任何不安全的字符;除了撇号(')以外,只要您对CSS字符串:url("...")使用双引号,就不会出现问题。

一种简单的方法是对URL中的所有字符进行URL编码,这些字符在URL中不是“保留的”或“无保留的”。根据RFC 3986的说法,除了这些字符外,所有字符都是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) # [ ]

这就是encodeURI()M JavaScriptārtiņšBriedis的答案中所做的。(只有一个例外:encodeURI()编码了[],这两种编码大多是无关紧要的。)

除此之外,您还可以考虑只允许以https:data:开头的URL。通过这样做,如果页面是通过HTTPS服务的,则可以防止混合内容警告,还可以避免javascript:问题亚历山大·奥马拉

您可能还需要进行其他URL解析和验证,但这不在此问题的范围之内。

如果需要将用户数据插入不能被视为URL的CSS字符串中,则需要执行CSS反斜杠转义。有关这方面的更多信息,请参见用户123444555621答案

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25613552

复制
相关文章
我的 CSS 就是这么可爱——如何组织 CSS
  不用说,绝大部分前端开发都会脱口而出:HTML、CSS 和 JavaScript。要是这个还需要犹豫的话,朋友自己去墙角反省一下自己[手动狗头]。既然被称为三剑客,那么就意味着这三者在前端开发中起到了重要的作用。HTML 负责页面结构的搭建,CSS 负责页面的布局与美化,而 JS 负责的是赋予静态页面以动态的逻辑。从这个角度来看,这三者真的是缺一不可。但是随着业务需求的紧逼,我们往往做不到“雨露均沾”,有意无意得忽略了某个角色——CSS。
前端劝退师
2021/09/08
6450
我的 CSS 就是这么可爱——如何组织 CSS
OpenCV中如何读取URL图像文件
最近知识星球收到的提问,觉得是一个很有趣的问题,就通过搜集整理归纳了一番,主要思想是通过URL解析来生成数据,转为图像/Mat对象。但是在Python语言与C++语言中的做法稍有不同。
OpenCV学堂
2019/07/19
5.9K0
程序员应该规避的5种糟糕的代码实践
图译:parseDBMXML 代指什么:A、解析 DBM XML 。B、解析 DB MXML。C、解析 DB Mx 标记语言。D、解析 DB Mx 机器学习。
用户2781897
2021/08/06
3680
程序员应该规避的5种糟糕的代码实践
如何规避线性回归的陷阱(上)
本文中蓝色字体为外部链接,部分外部链接无法从文章中直接跳转,请点击【阅读原文】以访问。
AiTechYun
2019/10/21
9600
如何规避线性回归的陷阱(上)
响应式网站应该如何选择 CSS 单位?
在开发需要适配各种设备的响应式网站时,正确了解的 CSS 范围很重要。在做具体的决策之前,我们对它们先分个类:
ConardLi
2021/09/08
1.9K0
响应式网站应该如何选择 CSS 单位?
如何规避线性回归的陷阱(下)
在上一部分中,我们学习了线性回归的概念和规避线性回归陷阱的前两个解决方案,今天我们继续学习剩余的两个方案。
AiTechYun
2019/10/23
7370
css自动换行如何设置?url太长会撑开页面
  我们更新文章时如果有引用其他文章一般会带一个原文url,但这个链接如果太长的话会把内容的版块撑开,整个排版乱了。那我们能不能设置css自动换行呢?如下图所示,其实只要两个样式就能搞定 word-w
ytkah
2018/03/06
3.8K0
css自动换行如何设置?url太长会撑开页面
Confluence 6 应该如何在我的空间中组织内容
你在 Confluence 中创建的任何内容,从会议记录到回顾和任何中间的内容,不管来源是博客和页面。
HoneyMoose
2019/01/30
8990
Confluence 6 应该如何在我的空间中组织内容
我想学习 node.js,但是应该如何开始?
「根据公司的需求学习 node.js,在需求中进行学习,时间充分,成长快,事半功倍。」
山月
2022/04/11
7960
面试官一题难住我:如何规避生产环境性能测试风险 ?
摘要:系统性能测试结果的可参考性与测试环境有着直接的关系,模拟环境与真实环境相比存在环境差异、数据量差异等问题,导致测试结果的可参考性差。
测试小兵
2021/08/05
7700
如何在面试中规避掉这些奇葩的坑?
今年2022整体IT行业不景气,大厂小厂裁员不断,因岗位稀缺,匹配性,竞争大,被裁以后面临的房贷车贷等压力,不得不看下银行卡,还能够支撑多久,都得赶紧的找下一家,但偏偏事与愿违,才发现找工作不容易,重点还遇到一些奇葩或者不平等的现象;如去面试地点2h路途,面试5分钟;面试直接拿项目让你写用例,拿电脑写自动化用例;面试1h,全程就一个问题;面试过程中才说这个岗位没了,你是否可以考虑另外一个岗位;面试途中2h,面试等待2h,领导没空,不好意思,麻烦你下次再来了。。。。。。 有人说,这其中也许是正常面试过程,毕竟每家公司文化不一样,也许真有事。好吧,也许我out了吧,也许我用道德去绑架他们了,但我觉得他们有刷kpi嫌疑,有盗人家成果嫌疑,有落井下石的嫌疑等等。没办法,谁叫我们没有工作,急于找工作,就只能吃哑巴亏了哦~我个人认为这个吃一次亏就行,你要说继续吃亏,是应该的,那我觉得你活该; 那如何避开这些群魔乱舞的公司?
厦门-安仔
2022/12/12
1850
我应该拿什么来拯救你,我的游戏?
前段时间,晓衡加入的一个小游戏个人开发者群突然,炸锅了!群里有两位伙伴开发的小游戏,一个破解上架头条,一个破解打成 Android 包。
张晓衡
2019/11/14
1.2K0
如何缩减合约以规避合约大小限制
在2016 年 11 月 22 日[5],Spurious Dragon 硬分叉引入了EIP-170[6],增加了智能合约的大小限制为 24.576kb。对于作为 Solidity 开发者的你来说,这意味着当你向你的合约添加越来越多的功能时,在某些时候你会达到限制,当部署时你会看到错误:
Tiny熊
2021/08/06
2.1K0
URL 如何编码
URL编码通常也被称为百分号编码(percent-encoding),是因为它的编码方式非常简单: 使用%加上两位的字符——0123456789ABCDEF——代表一个字节的十六进制形式。URL编码要做的,就是将每一个非安全的ASCII字符都被替换为“%xx”格式, 对于非ASCII字符,RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码。 如"中文"使用UTF-8字符集得到的字节为0xE4 0xB8 0xAD 0xE6 0x96 0x87,经过Url编码之后得到"%E4%B8%AD%E6%96%87"。
用户8983410
2021/10/08
1.8K0
如何从 100 亿 URL 中找出相同的 URL?
来源 | https://doocs.github.io/advanced-java/ 题目描述 给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。 解答思路 每个 URL 占 64B,那么 50 亿个 URL占用的空间大小约为 320GB。 5, 000, 000, 000 * 64B ≈ 5GB * 64 = 320GB 由于内存大小只有 4G,因此,我们不可能一次性把所有 URL 加载到内存中处理。对于这种类型的题
程序猿DD
2023/04/04
2.9K0
如何从 100 亿 URL 中找出相同的 URL?
CSS 3.0中裁剪图像的特效
在有CSS 3.0之前裁剪图片实现也是颇有难度的,现在我们有了两个非常方便简单的属性可以实现裁剪,那就是object-fit和object-position,这两个属性可以让我们改变图片的大小,但是不影响图片的长宽比,利用它我们可以实现一个如下的特效。
越陌度阡
2020/11/26
1K0
CSS 3.0中裁剪图像的特效
灵魂拷问:如何规避生产环境的性能测试风险?
Hi,大家好,常言道,上线一时爽,事后火葬场。隐秘Bug的哲学之道:不知道藏在哪里,不知道有多少,总是在你准备休息的时候出现。生产环境一旦出问题,内心一阵发凉,当天必须解决,大家手忙脚乱思考解决方案。最紧张的当属测试人员,我漏测了?主机锁表?服务异常?......
可可的测试小栈
2021/08/06
7740
灵魂拷问:如何规避生产环境的性能测试风险?
面对未知分类的图像,我要如何拯救我的分类器
AI 科技评论按:当训练好的图像分类器遇到了训练数据里不存在的类别的图像时,显然它会给出离谱的预测。那么我们应该如何改进分类器、如何克服这个问题呢?
AI科技评论
2018/10/25
2.4K1
面对未知分类的图像,我要如何拯救我的分类器
如何巧妙地规避移动直播场景中的延迟“坑”?
避免延迟,对于直播来说,一直是一块比较难啃的骨头,而这块“骨头”却为移动直播源码开发凿出了一个又一个的“坑”,根据实践总结下来的经验,移动平台上视频直播的坑主要有两个方面:设备差异,以及网络环境这些场景下带来的技术考验。那么对这几个坑如何进行有效规避呢,下面我们就来具体看看。
就爱吃小笼包
2020/01/07
1.1K0
如何巧妙地规避移动直播场景中的延迟“坑”?
面试:如何从 100 亿 URL 中找出相同的 URL?
给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。
后端码匠
2020/09/07
4.6K0

相似问题

如何规避背景图像URL

16

我应该如何规避-Wformat-truncation?

218

如何规避url编码?

34

如何规避URL中的等号?

14

我应该如何使用CSS在我的图像上设置此标题?

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文