-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for FedCM, Passkey, and WebAuthn well-known files #158
Add support for FedCM, Passkey, and WebAuthn well-known files #158
Conversation
Added a WebAuthn example (https://ror-1.glitch.me/) from https://web.dev/articles/webauthn-related-origin-requests |
@max-ostapenko Thank you for adding this. Very helpful to run the test. |
https://almanac.httparchive.org/en/2022/Changed custom metrics values: {
"_well-known": {
"/.well-known/assetlinks.json": {
"found": false
},
"/.well-known/apple-app-site-association": {
"found": false
},
"/.well-known/related-website-set.json": {
"found": false
},
"/.well-known/privacy-sandbox-attestations.json": {
"found": false
},
"/.well-known/gpc.json": {
"found": false
},
"/.well-known/web-identity": {
"found": false
},
"/.well-known/passkey-endpoints": {
"found": false
},
"/.well-known/webauthn": {
"found": false
},
"/robots.txt": {
"found": true,
"data": {
"matched_disallows": {}
}
},
"/.well-known/security.txt": {
"found": false,
"data": {
"status": 404,
"redirected": true,
"url": "https://almanac.httparchive.org/.well-known/security.txt/",
"content_type": "text/html; charset=utf-8"
}
},
"/.well-known/change-password": {
"found": false,
"data": {
"status": 404,
"redirected": true,
"url": "https://almanac.httparchive.org/.well-known/change-password/"
}
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://almanac.httparchive.org/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/"
}
}
}
} https://www.ebay.comChanged custom metrics values: {
"_well-known": {
"/.well-known/assetlinks.json": {
"found": true,
"data": {
"deep_linking": true,
"credential_sharing": true
}
},
"/.well-known/apple-app-site-association": {
"found": true
},
"/.well-known/related-website-set.json": {
"error": "Failed to fetch"
},
"/.well-known/privacy-sandbox-attestations.json": {
"error": "Failed to fetch"
},
"/.well-known/gpc.json": {
"error": "Failed to fetch"
},
"/.well-known/web-identity": {
"error": "Failed to fetch"
},
"/.well-known/passkey-endpoints": {
"found": true,
"data": {
"enroll": "https://accounts.ebay.com/acctsec/manage/passkeys/create",
"manage": "https://accounts.ebay.com/acctsec/security-center"
}
},
"/.well-known/webauthn": {
"error": "Failed to fetch"
},
"/robots.txt": {
"found": true,
"data": {
"matched_disallows": {
"*": [
"/signin/"
],
"bingbot": [
"/signin/"
]
}
}
},
"/.well-known/security.txt": {
"error": "Failed to fetch"
},
"/.well-known/change-password": {
"error": "Failed to fetch"
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"error": "Failed to fetch"
}
}
} https://www.amazon.co.ukChanged custom metrics values: {
"_well-known": {
"/.well-known/assetlinks.json": {
"found": true,
"data": {
"deep_linking": true,
"credential_sharing": false
}
},
"/.well-known/apple-app-site-association": {
"found": true
},
"/.well-known/related-website-set.json": {
"found": false
},
"/.well-known/privacy-sandbox-attestations.json": {
"found": false
},
"/.well-known/gpc.json": {
"found": false
},
"/.well-known/web-identity": {
"found": false
},
"/.well-known/passkey-endpoints": {
"found": false
},
"/.well-known/webauthn": {
"found": false
},
"/robots.txt": {
"found": true,
"data": {
"matched_disallows": {
"*": [
"/exec/obidos/account-access-login",
"/exec/obidos/dt/assoc/handle-buy-box",
"/exec/obidos/flex-sign-in",
"/exec/obidos/refer-a-friend-login",
"/exec/obidos/subst/associates/join",
"/gp/sign-in",
"/ap/signin",
"/gp/video/auth"
]
}
}
},
"/.well-known/security.txt": {
"found": true,
"data": {
"status": 200,
"redirected": false,
"url": "https://www.amazon.co.uk/.well-known/security.txt",
"content_type": "text/plain",
"signed": false,
"contact": [
"https://hackerone.com/amazonvrp/reports/new"
],
"policy": [
"https://hackerone.com/amazonvrp"
],
"hiring": [
"https://www.amazon.jobs/en/teams/infosec"
],
"all_required_exist": false,
"only_one_requirement_broken": false,
"valid": false
}
},
"/.well-known/change-password": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://www.amazon.co.uk/.well-known/change-password"
}
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://www.amazon.co.uk/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/"
}
}
}
} https://tv.apple.comChanged custom metrics values: {
"_well-known": {
"/.well-known/assetlinks.json": {
"found": true,
"data": {
"deep_linking": true,
"credential_sharing": false
}
},
"/.well-known/apple-app-site-association": {
"found": true
},
"/.well-known/related-website-set.json": {
"found": true
},
"/.well-known/privacy-sandbox-attestations.json": {
"found": true
},
"/.well-known/gpc.json": {
"error": "Unexpected token '<', \"<!DOCTYPE \"... is not valid JSON"
},
"/.well-known/web-identity": {
"found": true,
"data": {
"provider_urls": [],
"accounts_endpoint": null,
"login_url": null
}
},
"/.well-known/passkey-endpoints": {
"found": true,
"data": {
"enroll": null,
"manage": null
}
},
"/.well-known/webauthn": {
"found": true,
"data": {
"origins": []
}
},
"/robots.txt": {
"found": true,
"data": {
"matched_disallows": {}
}
},
"/.well-known/security.txt": {
"found": true,
"data": {
"status": 200,
"redirected": false,
"url": "https://tv.apple.com/.well-known/security.txt",
"content_type": "text/html",
"signed": false,
"other": [
[
"overflow",
"hidden;"
],
[
"position",
"fixed;"
],
[
"top",
"0;"
],
[
"right",
"0;"
],
[
"bottom",
"0;"
],
[
"left",
"0;"
],
[
"animation",
"spinner 0s 2s forwards;"
],
[
"visibility",
"hidden;"
],
[
"visibility",
"visible;"
],
[
"\"@context\"",
"\"https://schema.org\","
],
[
"\"@id\"",
"\"https://tv.apple.com/#organization\","
],
[
"\"@type\"",
"\"Organization\","
],
[
"\"name\"",
"\"Apple TV\","
],
[
"\"url\"",
"\"https://tv.apple.com\","
],
[
"\"logo\"",
"\"https://tv.apple.com/assets/knowledge-graph/tv.png\","
],
[
"\"sameAs\"",
"["
],
[
"\"parentOrganization\"",
"{"
],
[
"\"@type\"",
"\"Organization\","
],
[
"\"name\"",
"\"Apple\","
],
[
"\"@id\"",
"\"https://www.apple.com/#organization\","
],
[
"\"url\"",
"\"https://www.apple.com/\""
]
],
"all_required_exist": false,
"only_one_requirement_broken": false,
"valid": false
}
},
"/.well-known/change-password": {
"found": true,
"data": {
"status": 200,
"redirected": false,
"url": "https://tv.apple.com/.well-known/change-password"
}
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"found": true,
"data": {
"status": 200,
"redirected": false,
"url": "https://tv.apple.com/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/"
}
}
}
} https://ror-1.glitch.meChanged custom metrics values: {
"_well-known": {
"/.well-known/assetlinks.json": {
"found": true,
"data": {
"deep_linking": true,
"credential_sharing": true
}
},
"/.well-known/apple-app-site-association": {
"found": false
},
"/.well-known/related-website-set.json": {
"found": false
},
"/.well-known/privacy-sandbox-attestations.json": {
"found": false
},
"/.well-known/gpc.json": {
"found": false
},
"/.well-known/web-identity": {
"found": false
},
"/.well-known/passkey-endpoints": {
"found": false
},
"/.well-known/webauthn": {
"found": true,
"data": {
"origins": [
"https://ror-2.glitch.me"
]
}
},
"/robots.txt": {
"found": false
},
"/.well-known/security.txt": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://ror-1.glitch.me/.well-known/security.txt",
"content_type": "text/html; charset=utf-8"
}
},
"/.well-known/change-password": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://ror-1.glitch.me/.well-known/change-password"
}
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://ror-1.glitch.me/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/"
}
}
}
} https://www.google.comChanged custom metrics values: {
"_well-known": {
"/.well-known/assetlinks.json": {
"found": true,
"data": {
"deep_linking": true,
"credential_sharing": true
}
},
"/.well-known/apple-app-site-association": {
"found": false
},
"/.well-known/related-website-set.json": {
"found": false
},
"/.well-known/privacy-sandbox-attestations.json": {
"found": false
},
"/.well-known/gpc.json": {
"found": false
},
"/.well-known/web-identity": {
"found": true,
"data": {
"provider_urls": [
"https://accounts.google.com/gsi/fedcm.json"
],
"accounts_endpoint": "https://accounts.google.com/gsi/fedcm/listaccounts",
"login_url": "https://accounts.google.com/gsi/fedcm/signin"
}
},
"/.well-known/passkey-endpoints": {
"found": false
},
"/.well-known/webauthn": {
"found": false
},
"/robots.txt": {
"found": true,
"data": {
"matched_disallows": {
"*": [
"/accounts/ClientLogin",
"/accounts/ClientAuth",
"/accounts/o8",
"/shopping/ratings/account/metrics",
"/nonprofits/account/"
]
}
}
},
"/.well-known/security.txt": {
"found": true,
"data": {
"status": 200,
"redirected": false,
"url": "https://www.google.com/.well-known/security.txt",
"content_type": "text/plain",
"signed": false,
"contact": [
"https://g.co/vulnz",
"mailto:[email protected]"
],
"expires": [
"2025-04-01T00:00:00z"
],
"encryption": [
"https://services.google.com/corporate/publickey.txt"
],
"acknowledgments": [
"https://bughunters.google.com/"
],
"policy": [
"https://g.co/vrp"
],
"hiring": [
"https://g.co/SecurityPrivacyEngJobs"
],
"all_required_exist": true,
"only_one_requirement_broken": false,
"valid": true
}
},
"/.well-known/change-password": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://www.google.com/.well-known/change-password"
}
},
"/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/": {
"found": false,
"data": {
"status": 404,
"redirected": false,
"url": "https://www.google.com/.well-known/resource-that-should-not-exist-whose-status-code-should-not-be-200/"
}
}
}
} |
Description
This PR adds support for tracking and analyzing the following well-known files:
/.well-known/web-identity
/.well-known/passkey-endpoints
/.well-known/webauthn
These files are critical for enabling Federated Credential Management (FedCM), passkey upgrades, and WebAuthn-related origin requests. The changes ensure that these files are fetched, parsed, and included in the HTTP Archive's custom metrics.
Changes
parseResponse
call for/.well-known/web-identity
to track FedCM configurations.parseResponse
call for/.well-known/passkey-endpoints
to track passkey enrollment and management URLs.parseResponse
call for/.well-known/webauthn
to track WebAuthn-related origin requests.Example Output
FedCM (
/.well-known/web-identity
)Test websites: