I'm building a user authentication system in Nodejs and use a confirmation email to verify a new account is real.

The user creates an account, which prompts him/her to check the email for a URL that he/she clicks to verify the account.

It works great, no issues.

What's unusual is that in testing, when I email myself (to simulate the new user process), and after I click the verify-URL, immediately afterward there are two subsequent connections to the endpoint. Upon inspection, it appears the source IPs belong to Google. What's even more interesting is that the user agent strings are random versions of Chrome.

Here's an example of the last sequence. The first one is the HTTP 200 request and the next two -- the HTTP 400s are Google. (I remove upon user verification the user's verification code from the database so that subsequence requests are HTTP 400s.) - - [03/Jul/2020:20:35:40 +0000] "GET /v1/user/verify/95a546cf7ad448a18e7512ced322d96f HTTP/1.1" 200 70 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36" "hidden.com" "" "US" "en-US,en;q=0.9" - - [03/Jul/2020:20:35:43 +0000] "GET /v1/user/verify/95a546cf7ad448a18e7512ced322d96f HTTP/1.1" 400 28 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36" "hidden.com" "" "US" "en-US,en;q=0.9" - - [03/Jul/2020:20:35:43 +0000] "GET /v1/user/verify/95a546cf7ad448a18e7512ced322d96f HTTP/1.1" 400 28 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36" "hidden.com" "" "US" "en-US,en;q=0.9"

Now I'm using Cloudflare so the first IP address in each line is a Cloudflare IP address but the second one you see is the real one [as reported by Cloudflare] ... I modified my "combined" log format in Nginx.

Anyhow, any idea what this is? Or why Google would be doing this?

It's just incredibly suspicious given the use of randomized user agent strings.

And one last note, if I inspect my console w/Chrome and go into the network tab before I click a verification link from my email, the 2 subsequent connections never come. It's like Google knows I'm monitoring ... this is just so incredibly odd that I had to ask the community. I'm thinking maybe this is an extension that's infected w/some kind of tracking, but how then do the IPs come back as Google?

If I use Firefox too, the secondary connections don't come. So this seems like an issue w/an extension within Chrome.

  • If there is a nefarious extension, it could be using Google hosting services and thus the Google IPs. – jfriend00 Jul 5 at 5:20
  • 3
    Are you using Gmail by any chance? Most email providers "scan" links for threats - for a single use link this is probably only possible once the user has initiated the first connection. You could check also check your browser developer console's network tab to see if there are any other requests made at the same time (e.g. by extensions as mentioned by @jfriend00) – Unencoded Jul 5 at 9:58
  • 1
    Using gmail, yes. I referenced above that when the network tab is open, the two secondary connections don't occur, which is why this is so suspicious. I will go through all my extensions to see if maybe one of them in spying on me, b/c when I use Firefox the secondary connections also do not occur. – user237854 Jul 5 at 17:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy