Python Flask:如何避免为特定URL生成任何类型的答案

Python Flask:如何避免为特定URL生成任何类型的答案,python,security,flask,Python,Security,Flask,我正在为家庭自动化编程一个家庭网络服务器。我见过好几次“机器人”扫描我服务器的端口。为了避免给不需要的扫描提供任何类型的活动标志,我试图避免为特定URL生成任何类型的答案,如“/”,即为典型的扫描URL配置静默模式。 我试过使用void.route decorators、错误寻址和void页面,但它们都产生了某种响应。 用Python在烧瓶里有可能吗? 有解决办法吗? 谢谢我建议您为正在扫描的URL返回一个自定义错误代码,如HTTP\U 410\U GONE 发件人: 将nginx放在flask

我正在为家庭自动化编程一个家庭网络服务器。我见过好几次“机器人”扫描我服务器的端口。为了避免给不需要的扫描提供任何类型的活动标志,我试图避免为特定URL生成任何类型的答案,如“/”,即为典型的扫描URL配置静默模式。 我试过使用void.route decorators、错误寻址和void页面,但它们都产生了某种响应。 用Python在烧瓶里有可能吗? 有解决办法吗?
谢谢

我建议您为正在扫描的URL返回一个自定义错误代码,如HTTP\U 410\U GONE

发件人:

将nginx放在flask应用程序前面,并使用fail2ban配置来监视此错误代码,并开始禁止经常访问这些URL的IP

发件人:

#Fail2Ban配置文件
[定义]
failregex=-\[.\](GET | POST)。*HTTP.*410
ignoreregex=

我和你的需求完全一样,决定从
404
500
处理程序返回

    @staticmethod
    @bottle.error(404)
    def error404(error):
        log.warning("404 Not Found from {0} @ {1}".format(bottle.request.remote_addr, bottle.request.url))

    @staticmethod
    @bottle.error(500)
    def error500(error):
        log.warning("500 Internal Error from {0} @ {1}".format(bottle.request.remote_addr, bottle.request.url))
该示例适用于
瓶子
,但您可以使用
烧瓶
对其进行调整


除了捕获明显的<代码> 404 /代码>,我决定与<代码> 500 <代码>做同样的操作,以防来自扫描仪的意外调用将破坏我的脚本,从而不提供回溯信息。

是‘有效的URL’,对于某些IPS应该收到有效的响应?也有点切切,您应该考虑运行FA。如果您担心机器人扫描您的服务器,请在服务器上安装il2ban。
# Fail2Ban configuration file
[Definition]
failregex = <HOST> - - \[.*\] "(GET|POST).*HTTP.* 410
ignoreregex =
    @staticmethod
    @bottle.error(404)
    def error404(error):
        log.warning("404 Not Found from {0} @ {1}".format(bottle.request.remote_addr, bottle.request.url))

    @staticmethod
    @bottle.error(500)
    def error500(error):
        log.warning("500 Internal Error from {0} @ {1}".format(bottle.request.remote_addr, bottle.request.url))