【发布时间】:2019-06-12 12:57:59
【问题描述】:
我有许多自定义应用程序充当服务器,接受 TCP 连接。它们不是网络服务器,也不会说 http;这都是自定义协议。它们对世界开放,尽管通常在不起眼的港口。而且它们经常被探测,我认为主要是扫描仪试图找到无人看管的网络服务器。
我正在努力想出最好的方法来阻止这种情况。检查第一个到达的令牌是 GET 或 POST 等对我来说是微不足道的,这不是我的任何自定义协议的一部分,因此表明我正在被扫描仪戳。我想让尝试这样做的人感到不安,只是作为一项公共服务。
我不熟悉扫描仪中使用的代码,我希望这里有人。理想情况下,我可以回复一些东西来使扫描仪崩溃、混淆它或浪费它的时间。
限制是,我宁愿不必让套接字打开很长时间。如果我这样做,有人可能会以数百个连接进行响应,从而导致 DoS。
到目前为止,我已尝试使用 308(永久重定向)回复 CIA 的网站。但是端口扫描器可能会跟随重定向吗?
我已尝试使用格式错误的 UTF-8 发回请求正文,希望有人处理得不好。但我无法知道这有多有效。
我当前发回的字符串是:
"HTTP/1.1 308 I'm a teapot. And you're an annoyance.\r\n"
"Content-Type: text/html; charset=utf-8\r\n"
//"Content-Length: 7673\r\n" //ugh, browser makes connection linger
//send him somewhere nice:
"Location: https://www.cia.gov\r\n"
"\r\n"
//make the body incomplete, ill-formed trash
"<html \xF0\x9F\x96\x95 \xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3\xf3"
我的问题很简单,是“有没有更好的方法?”这一定是人们经常处理的问题。我最好关闭连接,还是喷出二进制垃圾......?注意:我在运送病毒软件时划清界限。我的用户极有可能错误地将浏览器指向这些端口。
【问题讨论】: