gpt4 book ai didi

php - 让用户添加自己的样式表是个坏主意吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:58:42 27 4
gpt4 key购买 nike

我是 php 新手,我想弄清楚这是个坏主意还是安全风险。

我有一个提供给用户的数据表,它有一个加载的默认样式表,但如果用户想要包含他们自己的样式表,我已经做到了,这样他们就可以指向他们的样式表:

http://www.mysite.com/info.php?css=http://www.someothersite.com/mystylesheet.css

我已经尝试在 css 文件中添加关闭样式标签和 javascript,但 DOM 似乎只是将其加载为它无法处理的 CSS。

我从未见过任何其他站点允许使用这种添加样式表的方法,那么,这是好主意还是坏主意?我想我可以让脚本加载文件并查找 javascript 中使用的关键字,但通过我的测试,我不确定我是否需要这样做。


更新:我按如下方式添加 CSS:

<link href="<?php echo (isset($_GET['css'])) ? $_GET['css'] : 'default.css'; ?>" rel="stylesheet" type="text/css" />

最佳答案

只要样式表用于他们自己的帐户,而不是其他人的帐户,那么我就会让他们这样做。但是,因为它可以用于 session 劫持某人(如果他们没有注销),我需要用户的密码才能更改样式表。我也会强制将其存储在本地。

如果没有密码,劫持者所需要做的就是:

#selector:before {
content: expression(getCookie('phpsessid'));
}

显然,如果您没有名为 getCookie 的函数,那么他们将需要做更多的工作,但他们仍然很容易获得 cookie 数据。这就是自定义样式表的密码保护必不可少的原因。

如果您不包含每个用户的字段,并使用 $_GET['css'] 路由,请记住从外部站点重定向用户是微不足道的 (说 MySpace)到他们的页面,并带有指向有害 CSS 文件的路由以进行劫持攻击。如果没有保护 CSS 文件更改的身份验证,即使在登录时也应该受密码保护,那么您的软件确实非常非常容易受到攻击。

关于php - 让用户添加自己的样式表是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1534012/

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