如何使用用户名/密码阻止对服务器的请求?

How to block requests to server with user name / password?

我们已经意识到,当将此 URL http://Keyword:redacted@example.com/ 复制并粘贴到浏览器的地址栏时,它会重定向到 http://example.com/

据我了解,这可能用于某些 ftp 连接,但我们的网站上没有此类用途。我们怀疑我们是攻击的目标,并且 Google 警告我们在我们的 URL 请求中将 PII(主要是电子邮件地址)传递给他们的 Google Adsense 网络。我们一直没能找到出处,但是已经警告说违规的形式是http://Keyword:redacted@example.com/

我们怎样才能阻止这种情况发生?
我们可以使用什么 URL 重定向方法来不接受这个和 return 错误消息?

你无能为力。这完全由您的浏览器处理,甚至在它考虑 "talking" 到您的服务器之前很久。

人们 copy/paste 进入浏览器的地址栏很奇怪 URL 除非他们 told/trained 这样做。你最好的选择是告诉他们停止它! :-)

我想您可以查看 HTTP 授权 Headers 并在填充时报告错误...(这会 $_SERVER['PHP_AUTH_USER'] 在 PHP 中。)我已经当 header 不请求这些值时,我从未查看过这些值,所以我不确定它是否有效...

语法 http://abc:def@something.com 表示您发送用户 ID='abc'、密码='def' 作为基本身份验证参数。您的浏览器将提取用户 ID 和密码并将它们作为身份验证信息发送,而 url 没有它们。

正如 Peter Bowers 所提到的,您可以检查授权 headers 并查看他们是否以这种方式进入,但您无法阻止其他人(如果他们愿意)这样做。如果这种情况经常发生,那么我怀疑某处有一个 Web 表单要求用户输入他们的 user/password 并且它正在以这种方式进行编码。侦查它的一种方法是查看您是否可以通过指定的用户 ID 识别某人。

Keyword:redacted 听起来很奇怪。有可能 Google Adsense 更改了值以避免包含机密信息。

仅供参考,我在客户网站上遇到了类似的问题,并跟进了 Adsense 支持。此事已升级为专家团队,该团队调查并确定以 http://Keyword:redacted@example.com/ 格式标记的违规行为将被视为误报。我不确定这是否适用于所有发布商或特定于我们的情况,但可能值得跟进 Adsense 支持。