检测传入请求是否安全的最佳方法是什么?

检测传入请求是否安全的最佳方法是什么?

是否有一种首选方法来检测 F5 负载均衡器传入请求中的 HTTP 与 HTTPS?我们正尝试使用 iRule 检测安全与非安全,并将相应的标头标志传递到我的 Web 服务器。

以下是我们目前所拥有的(未经测试):

when HTTP_REQUEST_SEND {
   clientside {
      if {[TCP::local_port] == 443} {
         HTTP::header replace HTTP_X_FORWARDED_PROTO "https"
      }
      else {
         HTTP::header replace HTTP_X_FORWARDED_PROTO "http"
      }
   }
}

如您所见,我们正在使用if {[TCP::local_port] == 443} { ... }它来检测 SSL,但是将端口硬编码到规则中感觉很笨拙。有没有更好的方法?

也许检查:SSL::mode,,HTTP:uri或者别的什么?

答案1

您要检测的是连接是否正在使用客户端 SSL 配置文件。DevCentral 页面个人资料::存在演示如何执行此操作:

when CLIENT_ACCEPTED {
   if { [PROFILE::exists clientssl] == 1} {
      log local0. "client SSL profile enabled on virtual server"
   }
}

奥利弗

相关内容