我是 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" />
只要样式表用于他们自己的帐户,而不是其他人的帐户,那么我就会让他们这样做。但是,因为它可以用于会话劫持某人(如果他们没有注销),所以我需要用户的密码来更改样式表。我还会强制将其存储在本地。
如果没有密码,劫机者所需要做的就是:
#selector:before {
content: expression(getCookie('phpsessid'));
}
显然,如果你没有一个名为 getCookie 的函数,那么他们将需要做更多的跑腿工作,但他们获取 cookie 数据仍然太容易了。这就是自定义样式表的密码保护的原因基本的.
如果您不包含每个用户的字段,并使用$_GET['css']
路由,然后请记住,通过指向有害 CSS 文件的路由来进行劫持攻击,将用户从外部站点(例如 MySpace)重定向到其页面将是微不足道的。如果没有身份验证来保护 CSS 文件的更改(即使在登录时也应该受到密码保护),那么您的软件确实非常非常容易受到攻击。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)