我学会了爱相同的原产政策
今年,我与Noam Rosenthal合作,为新的Web平台功能提供标准化:动态调整图像大小和分辨率。成功!但是,旅程是一个陡峭的学习曲线。
虽然我预计浏览器反馈和无法预料的技术障碍等挑战,但我低估了对网络安全和隐私原则的影响。我先前对这些原则的理解不足。
我们的目标是修改图像的默认显示大小。默认情况下,800x600图像以800x600 CSS像素呈现。这是其内在尺寸(或自然尺寸),默认密度为1倍。
在没有CSS或HTML的高,低或可变密度图像时,出现了挑战。对于我的雇主Cloudinary等图像主机来说,这是一个普遍的需求。
我们涉及的解决方案:
- 浏览器在图像资源中读取和应用元数据以声明预期的显示尺寸和分辨率。
- 默认的浏览器尊重此元数据,通过CSS(
image-resolution
)或标记(srcset
的x
描述符)覆盖。
这似乎是听起来 - 灵活的,并建立在现有模式的基础上。但是,HTML规格编辑安妮·范·凯斯特(Anne Van Kesteren)拒绝了它,理由是违反了同基因政策(SOP)。图像方向也需要重新评估。通过CSS/HTML违反SOP来切换EXIF元数据效应的能力。
我对SOP的最初理解仅限于CORS错误。现在,它阻碍了一个重大项目。我必须学习!
我的关键要点:
- SOP不是一个规则,也不是仅关乎CORS错误。
- 这是一种不断发展的哲学,不一致地实施。
- 核心原则是Web安全性和隐私边界是由起源定义的。共同的起源意味着不受限制的互动;否则,适用限制。
- 允许许多交叉互动。网站通常可以跨起源(POST请求)和嵌入交叉原始资源(IFRAMES,图像)写入。但是,在JavaScript中阅读跨原生物资源需要明确的许可(CORS)。
- 至关重要的是,防止交叉读取可以保护用户隐私。每个用户都看到一个个性化的网络,受cookie和本地环境的影响。允许网站通过用户的浏览器读取其他网站的数据将是一个主要的安全缺陷。
SOP主要涉及防止跨原生蛋白读取的问题。默认情况下,通常允许其他跨原生蛋白动作。
图像大小/分辨率问题:
想象一下https://coolbank.com/hero.jpg
,根据用户登录状态返回不同的内容。登录版本可能包含EXIF分辨率信息,而已登录版本则没有。恶意演员可以嵌入此图像,检查其内在尺寸(带有和不带EXIF),推断登录状态以及潜在发射网络钓鱼攻击。
尽管由于CORS而无法访问像素数据(由于CORS),但演员跨越了起源 - 违规。
我们的解决方案:在跨原始环境中,始终应用EXIF修改,使信息无法理解。具有EXIF指定尺寸的图像始终会根据该尺寸呈现,而不管CSS替代如何。
了解SOP阐明了其他Web安全概念:
- 跨站点伪造(CSRF)利用了跨原始写入的默认津贴。
- 内容安全策略(CSP)控件允许嵌入,解决跨站点脚本(XSS)漏洞。
- COP,COEP,CORP和CORB旨在消除交叉互动,解决SOP实施中的不一致并减轻Specter等脆弱性。
简而言之:
- 基于基于原点的互动限制,网络安全性和隐私是可靠的。
- 默认情况下禁止使用交叉读取以保护用户隐私。
- 任何SOP漏洞,无论多么小,都是安全风险。
我的2020年经验强调了SOP的重要性以及对严格的Web安全实践的需求。更安全,更安全的未来需要坚定地辩护这些原则。
以上是我学会了爱相同的原产政策的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

在本周的平台新闻综述中,Chrome引入了一个用于加载的新属性,Web开发人员的可访问性规范以及BBC Move

文档负责人可能不是网站上最迷人的部分,但是其中所处的内容对于您的网站的成功也一样重要

有很多分析平台可帮助您跟踪网站上的访问者和使用数据。也许最著名的是Google Analytics(广泛使用)
