接受用户 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 和其他公司如何处理这种情况,如下例所示
绝对不是。
记住这一点,接受用户的任何东西都意味着危险,这是你应该以安全的方式处理危险。
您可以从用户那里获得 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。
总而言之,我认为只要满足以下条件,就可以安全地执行您的要求:
- 您验证 URL 有效
- 您进行了合理的检查以防止用户发布指向恶意内容的链接
- 您提供适当的免责声明以保护您免受外部网站内容的影响
我想在用户的个人资料中显示他们的网站,但我不知道在验证用户的输入格式是有效的 URL (https://userwebsite.com) 之后,使用该输入是否安全在标签 (<a href="https://userwebsite.com">
) 中将其他用户重定向到该网站?如果不安全,有什么方法可以检查 URL??
Facebook 和其他公司如何处理这种情况,如下例所示
绝对不是。
记住这一点,接受用户的任何东西都意味着危险,这是你应该以安全的方式处理危险。
您可以从用户那里获得 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。
总而言之,我认为只要满足以下条件,就可以安全地执行您的要求:
- 您验证 URL 有效
- 您进行了合理的检查以防止用户发布指向恶意内容的链接
- 您提供适当的免责声明以保护您免受外部网站内容的影响