3

我正在建立一个网页,其特色非常类似于 facebook 墙/新闻源。注册用户(或通过 Facebook-connect、google auth)可以提交 url。目前,我正在使用这些 URL 并使用 urllib2 来获取 URL 的内容并搜索相关信息,例如 og:properties、HTML 标题标签和图像的一些标签。

现在,我知道当我让用户向我的服务器提供要打开的 URL 时,我将我的服务器置于危险之中。

我的问题是风险有多高?我可以进行哪些标准安全检查?

至于现在,我只是在没有任何“主动”保护的情况下打开 url,因为我不知道要检查什么。

以及如何将获取的内容存储到数据库中。django 是否具有针对 SQL 注入的内置保护?

谢谢!

4

1 回答 1

2

这里明显的风险之一是,人们可能会将您的网站用作传播恶意 URL 的载体。

例如,假设我发现了一个格式错误的 html,它允许在基于 webkit 的浏览器中执行任意代码,例如通过利用某个 0-day 缓冲区溢出。假设您的网站很受欢迎,那将是我肯定会尝试的地方之一。

现在,您不可能匹配提交的 URL 的内容来查找安全漏洞。那时您将成为一家防病毒/安全公司。Chrome 和 Safari 都在一定程度上处理了这些问题。

为了用户/内容以及我解释的风险,您可以构建一个通过用户行为学习的标记系统。每当有人标记 URL 时,您都可以训练分类器,请参见此处的示例

我确信在 python 中也有各种这样的解决方案。

要快速了解 Django 上下文中的安全性和 sql 注入,请查看此链接

于 2012-10-10T09:00:23.173 回答