jquery - 是否需要清理用户控制的 CSS 选择器?
问题描述
可以滥用用户控制的 CSS 选择器吗?如果可以,应该如何消毒?
具体来说,在这种情况下,我以以下方式将选择器与 jQuery 一起使用$('a').not(userSuppliedSelector)
,但我也对一般情况感兴趣。
解决方案
如果您实际上将选择器注入 css 文件并且不对用户进行清理,则可以插入任何 css 并完全改变网站的外观。这将类似于 SQL 注入。
如果您只使用示例中的选择器,则不会发生此类事情。用户只能控制选择哪些链接。只是不要在字符串周围放置 eval ;)。不过,糟糕的选择器可能会导致糟糕的性能。
如何获得价值也很重要。举个例子,如果您要从 url 参数中获取选择器并将其注入到 css 文件中,那么有人可以创建一个可以更改页面外观的 url(同时保留证书和基本 url),然后尝试通过向他们发送链接来钓鱼您的用户。
但无论如何,消毒可能是一个好主意。
推荐阅读
- mysql - MySQL查询时间段和最大下降值与之前的最大值
- python - 在 Python 中使用 pandas 根据条件计数
- python - 禁用八卦、交际和心跳对芹菜工人有什么后果?
- java - 单击该面板时如何在面板上设置新的背景颜色?
- javascript - Highcharter 工具提示和绘图选项 - 关键字 this
- jhipster - JHipster Registry 无法显示客户端应用程序指标
- c++ - 如何调整我的代码以确保我的迭代器代码接受用户输入?
- typescript - 尝试使用 TypeScript 和 vue-property-decorator 汇总 Vue
- crash - 为什么在 Glide 4.9.0 中使用 .asBitmap() 会崩溃
- c# - 在显示阴影时准确设置表单边界