html - 允许用户发布 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>
观众允许这样做是否安全,还是会意外危及他们的隐私或安全?
解决方案
这是一个坏主意。请记住,绝大多数提供此类功能的网站(例如 Wordpress 评论)都会立即被恶意软件链接完全淹没。如果 HTTP 还不够糟糕,那么允许其他方案扩展了攻击者可以使用的选项,可以直接攻击您网站的访问者,也可以将您用作代理向量。如果他们真的有一个需要非 HTTP 方案的站点,他们应该链接到他们自己的站点并使用他们想要的任何链接,而不是将责任转嫁给您。
推荐阅读
- r - 在 R 中用模式查找和替换文本
- python - 将 pandas 数据框中的 datetime64[ns] 作为参数传递给函数
- mysql - 如何用另一个表中的数据(计算)填充 SQL 列
- javascript - 将 async/await 更改为 Promise
- wordpress - 如何自定义/更改循环查询
- jquery - 使用 JavaScript (jQuery) 创建自定义计算
- facebook - 如何在 Instagram 主题标签提要中获取视频的缩略图 URL?
- python - pyvisa,未找到函数 viOpen
- sql - 显示存在于多列中的数据
- nuxt.js - 如何修复未捕获(承诺中)TypeError:无法设置未定义的属性