我注意到,如果您是管理员或编辑器,您可以在comments (不在页面/后期编辑器中)对于管理员/编辑器角色:
<script>alert("Danger, Wil Robinson!");</script>
这方面似乎没有太多文档,这是允许的
unfiltered_html
(参见答案
here ).
仅对管理员/编辑角色启用;其他角色将忽略注释中的任何脚本命令。但这似乎是一种安全风险。
其他人如何看待允许在注释中使用脚本命令的这种可能的安全风险?
Added
记住,这个问题是关于评论的,以及评论中的恶意脚本如何影响访问者。
在你自己的网站上尝试一下。不要登录,成为“随机”未经身份验证的访问者。将上述脚本命令放入注释中并保存。现在刷新页面,将显示警报消息(假设您没有禁用Javascript)。
您刚刚证明,评论中的恶意脚本会影响您网站的访问者。它可能不会影响您的网站,但会影响您网站的任何访问者。
现在,一些网站允许在页面/帖子中使用脚本可能会很有用。这不是这里的问题。问题是评论中的脚本,这可能会对访问者造成危险。
PROOF OF CONCEPT (added)
查看此页
https://cellarweb.com/fstraptest/this-is-a-new-post/#comment-502.基本WP,无插件激活,2017主题。添加了一个新帖子。已注销。已打开新浏览器窗口(非选项卡)。已将网站加载为“访问者”(无登录)。看看那个帖子。然后对帖子发表评论;保存了它。看到弹出窗口。重新显示帖子。看到弹出窗口。
如果您转到该链接,您将看到“Danger Wil Robinson”弹出窗口。
SO网友:Mark Kaplun
这本身并不是“安全风险”,因为管理员可以通过FTP添加自己喜欢的任何愚蠢的PHP代码,这通常会比一些JS造成更大的破坏。如果一个管理员做了愚蠢的事情,那么你就不应该做什么,因为毕竟这是他的网站。
也许值得一提的是,插入随机JS的安全风险是什么。基本上,如果您可以将JS插入页面(在本例中通过注释),您的JS可以读取与身份验证相关的cookie并将其发送给您。现在剩下的就是“欺骗”管理员访问该页面,您就可以获得cookie,从而可以作为管理员访问该站点。
好吧,这不是一个安全风险,但听起来确实很难听,我们不能过滤掉吗<script>
对每个人来说?问题是,您可能想做一些不那么琐碎的事情,比如嵌入一个youtube视频,共享代码可能需要加载一些脚本(如果YT现在的工作方式可能是一个糟糕的例子)。
评论表单的核心缺点是,随机用户甚至可以尝试提交任何包含HTML的内容,这不仅是一个潜在的安全风险,而且对99%的用户(即使是技术上适应的用户)来说也是一个糟糕的用户体验。在一个理想的世界中,潜在的不安全的东西只能从管理端获得,但这艘特殊的船早就开航了。