gpt4 book ai didi

css - 自定义 CSS 安全性

转载 作者:行者123 更新时间:2023-11-28 13:05:36 25 4
gpt4 key购买 nike

我在网站上工作,用户可以创建自定义 CSS 样式表。我知道这样做总会有危险,但有什么方法可以让我的验证更安全吗?我正在使用这个:

$customCSS = $_POST["submittedCustomCSS"]; //put user's submitted stylesheet into variable
$customCSS = htmlspecialchars($customCSS); //hopefully validate it?
file_put_contents("../custom.css", $customCSS); //save user's stylesheet

显示自定义CSS的页面启用了PHP,CSS通过<link rel="stylesheet" href="<?php echo $postID; ?>/custom.css">显示。
有什么办法可以使它更安全吗?提前致谢! :)

最佳答案

htmlspecialchars($customCSS); //hopefully validate it?

不,这还不够。这可能会阻止 CSS 转义 </style>。它嵌入其中的元素,但不会阻止 CSS 对页面上的任意元素进行样式设置,或阻止加载自定义字体或滥用 CSS 的其他有问题的功能,这些功能的安全隐患仍知之甚少。


如果自定义样式表可以应用于其作者无法访问的任何页面,那么您需要比这严格得多。可以通过多种方式利用自定义样式表来窃取不需要运行 JS 的信用卡号或 XSRF token 等数据。

例如,如果一个用户可以选择使用另一个用户的自定义样式表,那么这可能会导致安全漏洞,您不应该要求用户能够阅读和审查 CSS 文件才能安全地使用您网站的功能.

"Scriptless Attacks – Stealing the Pie Without Touching the Sill"解释注入(inject) CSS 的一些方式可能会产生问题:

We show that CSS markup, which is traditionally considered to be only used for decoration/display purposes, actually enables an attacker to perform malicious activities.

...

We introduce several novel attacks that we call scriptless attacks, as an attacker can obtain the credit card number by injecting markup to this page without relying on any kind of (JavaScript) code execution.

...

Neither of the discussed attacks depends on user interaction on the victim’s part, but uses a mix of benign HTML, CSS and Web Open Font Format (WOFF [23]) features combined with a HTTP-request-based side channel to measure and ex- filtrate almost arbitrary data displayed on the website.

关于css - 自定义 CSS 安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20307965/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com