Use a constant so you don't keep creating the Array on each call, keep the Array sorted so its easier to tell if you're missing a header and use a Set for testing collisions:

```ruby
PROXY_REQUEST_HEADER_SET = Set.new(
  %w{
           CLIENT_IP
         FORWARDED
         FORWARDED_FOR
         FORWARDED_FOR_IP
         HTTP_CLIENT_IP
         HTTP_FORWARDED
         HTTP_FORWARDED_FOR
         HTTP_FORWARDED_FOR_IP
         HTTP_PROXY_CONNECTION
         HTTP_VIA
         HTTP_X_FORWARDED
         HTTP_X_FORWARDED_FOR
         VIA
         X_FORWARDED
         X_FORWARDED_FO
   }
)

def has_proxy?(request)
  proxy_header_set = PROXY_REQUEST_HEADER_SET & request.headers.keys
  
  !proxy_header_set.empty?
end
```