处理用户提供的url的最佳或最安全的方法是什么?我想把url带到人们的社交媒体网站;Twitter, google+, facebook, YouTube等。我希望能够采取这些url的,并将它们存储在我的数据库中没有风险的数据库,或网站。
我有什么选择?我是否过滤输入和转义/排除字符,我是否只接受部分url?
我仍然不确定安全过滤这些链接的最佳方式,我正在考虑一个系统,将用户提供的链接与一系列可接受的格式进行比较
。
我的facebook链接是https://www.facebook.com/lilbugga,但我也可以使用https://www.facebook.com/532850510。
这是两种不同的变体,然后人们也可以尝试用http, https, www, no www等方式提交链接到他们的个人资料
我如何处理所有这些不同的格式变化,我是否创建一个数组与多个不同格式的链接存储在其中,比较用户提供的字符串?
url的最大风险不在于它们包含的内容(您可以像处理进入系统的任何其他数据一样对它们进行处理),而在于它们的去向。您应该关注的是通过重定向发送用户,这会导致恶意软件感染,网络钓鱼网站等。同时,尽可能地过滤掉垃圾邮件——任何可以接受输入的公开网页都会成为垃圾邮件发送者的目标,无论多么模糊,所以你需要在设计时考虑到这一点。
你可能想看看像谷歌的安全浏览API(我相信存在其他替代方案),作为在你把它们放上去之前识别潜在问题的url的一种方式。