接受用户 url 显示在我们的网站上是否安全?

Is it safe to accept url from user to show in our website?

我想在用户的个人资料中显示他们的网站,但我不知道在验证用户的输入格式是有效的 URL (https://userwebsite.com) 之后,使用该输入是否安全在标签 (<a href="https://userwebsite.com">) 中将其他用户重定向到该网站?如果不安全,有什么方法可以检查 URL??

Facebook 和其他公司如何处理这种情况,如下例所示

https://www.facebook.com/pages/Restaurant-El-Reda-libanesische-und-iranische-Spezialit%C3%A4ten/169985763015422

绝对不是。

记住这一点,接受用户的任何东西都意味着危险,这是你应该以安全的方式处理危险。

您可以从用户那里获得 URL,但这可能对其他人有害...

这是一个很好的问题。有许多网站允许用户输入 URL,然后以链接形式提供。长期以来,这一直是论坛的主要内容。

挑战在于我们要确保 URL 有效并且不会鼓励人们访问恶意网站。对于第一部分(URL 是否有效)有很多库可以检查 URL 例如 urlparse 是否为 python。 (抱歉,我不太了解 PHP,无法提供等效示例)。

第二部分更有趣一点,取决于您的情况。如果您是 运行 非商业站点,则 Google Safe Browsing offers an API which I believe will allow you to filter out malicious links. If you are running a commercial site then there are alternatives for example SophosLabs Intelix

总而言之,我认为只要满足以下条件,就可以安全地执行您的要求:

  1. 您验证 URL 有效
  2. 您进行了合理的检查以防止用户发布指向恶意内容的链接
  3. 您提供适当的免责声明以保护您免受外部网站内容的影响