如何阻止上传到网页?

如何阻止上传到网页?

在以下博客中http://blog.wfilterngf.com/?p=225,有一个选项可以阻止上传到网页。与此类似,如果我要编写一个阻止上传到所有网页的程序,使用什么方法来阻止文件上传?

这是否类似于阻止所有包含 HTTP PUT 或 HTTP POST 的数据包?

(基本上,我试图了解这样的程序如何实现该功能)

答案1

如今,可靠地阻止文件上传是一项困难的任务,甚至是不可能的。在 HTTPS 时代,几乎不可能获得可以分析的未加密流量,这意味着在几乎所有情况下,您都无法真正看到 HTTP 请求是 PUT、GET、POST 等,也无法看到任何其他标头。

如果我们远离加密和 HTTPS,一般来说,有三个主要指标可以帮助检测文件上传:

  1. 请求方法(PUT/POST)——正如您所知,PUT 和 POST 是用于上传数据的主要方法,但这些数据可以是任何东西,可以是对 API 的请求,可以是某人试图登录,也可以是其他任何类似的东西。@Aramil 提到了 POST.file 和 POST.API,但根本没有这种东西,只有 POST。此外,即使有 POST.API(例如,您可以区分用于文件的 POST 和用于 API 的 POST),您也可以通过以 base64 格式对文件内容进行编码,轻松地通过 API 上传文件。
  2. Content-Type 标头- 此标头指定要上传的内容的类型。然而,在更不安全的网站上,可以将此标头设置为您想要的任何内容,因此它可能不可靠。
  3. 发送数据的大小 - 当然,文件越大,显示的数字就越大。API 请求通常不需要发送大量数据。但我们不应忘记上传小文件的可能性,或者只是将大文件分割成足够多的小部分,以便您可以通过多个小请求上传它,因此这也有点不可靠。

当然,有超过 3 个指标可以提供帮助,但没有一个指标能够使文件上传的检测(和阻止)成为一项完全可靠的工作。但是,您找到的有用指标越多,错误率就会越小。您可以在上传文件、使用 API 等时自己开始分析 HTTP 请求,这样您就可以缩小较小的差异。但无论您做什么,只要有互联网接入,想要不惜一切代价上传文件的人总会找到方法。

您在帖子中提到的 WFilter 是一款旧软件,它(我只能猜测)依赖于未加密的 HTTP 流量。

相关内容