AWS Cloudfront-设置标头REMOTE_ADDR = HTTP_X_FORWARDED_FOR

时间:2018-06-22 02:18:28

标签: asp.net iis amazon-cloudfront

我有一个网站,该网站带有HTTPS CloudFront前端,可以通过HTTP转发到IIS网站。

在应用程序的各个位置,REMOTE_ADDR标头用于安全日志记录等。

此标头显然不能通过CloudFront正常工作,因为它将是Cloudfront服务器,而不是实际的远程客户端地址。

为避免必须对应用程序代码进行大量更改,我想做的是重写REMOTE_ADDR的值并将其设置为HTTP_X_FORWARDED_FOR的值。

为此,我打算将这段代码放在Global.asax.vb BeginRequest处理程序中...

Dim remote_address = HttpContext.Current.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If Not String.IsNullOrEmpty(remote_address) Then
    HttpContext.Current.Request.ServerVariables.Set("REMOTE_ADDR", remote_address)
End If

有什么理由不希望这样做吗?

这似乎应该允许应用程序继续正常运行,而不必知道它是由客户端直接调用还是通过CloudFront调用。

0 个答案:

没有答案