URL 中 user@ 的几个请求导致 "Policy breach notice" 来自 Google AdSense

A couple of requests with user@ in URL lead to "Policy breach notice" from Google AdSense

我最近收到一封来自 Google 的电子邮件,说他们将禁止我的 AdSense 帐户,因为我在 Google AdSense 标记请求中向他们发送了个人身份信息。它表示来自我网站的大约 1% 的请求具有以下引荐来源网址:

some_user@my_website.com/some/subpage

他们认为 some_user@my_website.com 是 PII(即使它可以完全由 abcd1234@my_website.com 组成)。更多相关信息:https://support.google.com/adsense/answer/6163366?hl=en .

我从来没有 link 这种 URL(我使用的唯一形式是 my_website.com/some/subpage),但我想我的用户有时会手动输入它(因为产品-明智的是,我的网站提供电子邮件服务,从某种逻辑上看这似乎是合理的)。

我认为 some_user@my_website.com/some/subpage 的 URI 是合法的,因为 http 基本身份验证允许像这样指定用户。当我手动将它输入到 Firefox 时,some_user@ 从地址栏中消失,但在 Firebug 的网络面板中我可以看到所有文件确实是从 some_user@my_website 请求的.com/some/subpage Google 也是这样看的。

我认为这是一个蛮力解决方案,甚至是这样的:

if uri contains '@':
  redirect to my_website.com

会做。

我正在使用 NGINX/UWSGI/Python 粘贴 + JS。我试图在服务器端和 JS 中实现上述条件,但我的 URI 总是显示 my_website.com/some/subpage,即使我手动输入 some_user@my_website。 com/some/subpage 在浏览器地址栏中。

我也试过在 NGINX 中配置 basic_auth 以禁止提供任何用户但没有效果。

如何摆脱这些请求? 如何在 JS 中获取完整的 URI(带有 some_user@)?我尝试了 document.URI 和 window.location.href 但它们不包含用户部分...

显然可以通过检查 window.location.href 来检测 URI 中是否存在 user@ 部分。我之前没有注意到它,因为 window.location.href 仅在基于 Webkit 的浏览器(例如 Chrome、Opera、Safari)中包含 user@,但在 Firefox 中不包含!

为了解决这个问题,我在 JS 中添加了一个检查 + 一个 JS 重定向到 URL 没有用户 [:password]@。

希望 Google 使用相同的变量来确定广告请求的引荐来源网址,因此它仅从 Webkit 浏览器获取 PII 并针对 Webkit 修复它就足够了。会及时通知你的。