首页 > 解决方案 > 允许用户发布 http/https 以外的 url 方案?

问题描述

我有一个博客评论部分,用户可以在其中写下他们的网站并发表评论,如下所示:

<a href="https://example.com">Website</a>
<br>
<span>my website is about...</span>
<br><br>
<a href="https://example2.com">Website2</a>
<br>
<span>my website2 is about...</span>

我只允许 http/https URL 方案。

我的一些用户告诉我他们想使用 url 方案编写网站或连接,例如ftp:// - mailto: - file: - info:

<a href="ftp://example.com">Website</a>
<br>
<span>my website is about transfering to you</span>
<br><br>
<a href="file:example2.com/file.xml">Website2</a>
<br>
<span>my website2 is about sharing a file link to download</span>
<br><br>
<a href="mailto:name@example3.com">Website2</a>
<br>
<span>my website3 is to send me email for medical conditions</span>

观众允许这样做是否安全,还是会意外危及他们的隐私或安全?

标签: htmlsecurityanchorurl-schemeprivacy

解决方案


这是一个坏主意。请记住,绝大多数提供此类功能的网站(例如 Wordpress 评论)都会立即被恶意软件链接完全淹没。如果 HTTP 还不够糟糕,那么允许其他方案扩展了攻击者可以使用的选项,可以直接攻击您网站的访问者,也可以将您用作代理向量。如果他们真的有一个需要非 HTTP 方案的站点,他们应该链接到他们自己的站点并使用他们想要的任何链接,而不是将责任转嫁给您。


推荐阅读