最初的安全规则之一是永远不要信任用户数据。然而,网站需要允许访问者键入URL并且该URL需要在锚标记的href上使用并不罕见。我有这种情况,我无法控制访问者提交的网址。
我需要能够判断提交的网址是否是跨网站脚本(XSS)风险,如果是,则不允许在href中使用。或者,如果网址是XSS风险,那么如果有某种方法来清理网址或使其安全地用于锚标记的href,那就更好了。
我已经对这个主题做了很多研究,并且我在这里了解Best way to handle security and avoid XSS with user entered URLs和Should I sanitize HTML markup for a hosted CMS?,但都没有提供明确的现代指导。我已经在那里和其他地方看到http://code.google.com/p/owasp-esapi-dotnet/的引用,但目前还不清楚这个库是否是最新的,更不清楚如何使用它来做我要求的。
例如,https://code.google.com/archive/p/owasp-esapi-dotnet/页面声称owasap esapi dot net library的API文档位于:https://alexsmolen.com/dotnetesapidoc/index.html,但页面返回有关缺失键的错误。不是可以灌输信心或提供有关可用API的信息的东西。嗯。此页面https://www.owasp.org/index.php/Category:OWASP_.NET_Project似乎是与.net相关的OWASP的文档,但页面上没有提到esapi库。
如何评估给定网址是否为XSS漏洞,以及是否为XSS vlnerability,如何清理它并在html锚标记的href中安全使用?