function expectIpPrivacyCases(cases: string[], expected: boolean) { for (const address of cases) {
expect(isPrivateIpAddress(address)).toBe(expected);
}
}
describe("ssrf ip classification", () => {
it("classifies blocked ip literals as private", () => {
expectIpPrivacyCases(
[...privateIpCases, ...malformedIpv6Cases, ...unsupportedLegacyIpv4Cases], true,
);
});
it("classifies public ip literals as non-private", () => {
expectIpPrivacyCases(publicIpCases, false);
});
it("does not treat hostnames as ip literals", () => {
expectIpPrivacyCases(nonIpHostnameCases, false);
});
});
describe("ssrfPolicyFromHttpBaseUrlAllowedHostname", () => {
it("builds an allowed-hostname policy from HTTP base URLs", () => {
expect(ssrfPolicyFromHttpBaseUrlAllowedHostname(" https://api.example.com/v1 ")).toEqual({
allowedHostnames: ["api.example.com"],
});
});
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.11Bemerkung:
(vorverarbeitet am 2026-09-28)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.