一些企事业单位出于工作和安全的需要,希望可以允许局域网内的电脑终端访问互联网,但是不允许发送数据到外网。这个需求从理论上来说其实是矛盾的,以Web访问为例,当我们去访问一个网页的时候,用的是HTTP的GET指令,大概的格式是这样的:
GET /path/to/resource HTTP/1.1
Host: www.example.com
User-Agent: MyCustomUserAgent/1.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Connection: keep-alive
浏览器告诉网站服务器这些信息:需要访问的URL地址、域名、浏览器种类、压缩类型、连接类型等。这个头部的大小在RFC的定义中是2K字节,这是明文的HTTP方式。如果是HTTPS方式,还需要证书交换,上传的数据大约8K字节。换句话说,即使只是浏览网站,每一次访问也需要8K的上传数据。所以说,只允许访问但是不允许任何外发数据,这个需求是自相矛盾的,不能得到真正的实现。
虽然严格的完全只访问不上传是做不到的,但是我们可以通过限定上传数据的大小来实现这个功能需求。如下图: