Sometimes squid likes to make one http get request on behalf of many client requests.
So X-FORWARDED-FOR contrains the ips of the many clients seperated by ",".
So I get that a lot when I used F5XForwardedFor.dll. But that doesnt work with Vista.
Also, it would be nice it your module checked the remote address to verify its from a specific source before using the X-FORWARDED-FOR header.
The reason being, is a client can fake X-FORWARDED-FOR header to fool a script.
If your module checked the REMOTE_ADDR or REMOTE_HOST to make sure it matched a specific value or if the REMOTE_ADDR is of the same network as LOCAL_ADDR (you can tell if local addr is 192.168.x.x or 127.0.0.1 etc) then HTTP_X-FORWARDED-FOR header would be used and trusted, if its not trusted then only REMORE_ADDR is used.
the HTTP_VIA indicated that a proxy server is used, but that can be spoofed too. Usually that header contains the name of the pc and port of the proxy server. So the machine name of the proxy has to resolve to the REMOTE_ADDR.
Anyways my IIS server can be accessed with or without a proxy. (proxy runs on a different PC), so it would be good to make sure the IP in X-FORWARDED-FOR is really the IP of the client and not a spoofed ip