gpt4 book ai didi

.net - 为什么使用 Microsoft AntiXSS 库?

转载 作者:行者123 更新时间:2023-12-03 04:02:41 26 4
gpt4 key购买 nike

当您可以使用HttpUtility.HtmlEncode简单地对数据进行编码时,我们为什么要使用AntiXss.HtmlEncode

为什么白名单方法比黑名单方法更好?

另外,在Anti XSS库中,我在哪里指定白名单?

最佳答案

您无法使用 AntiXSS 库指定或更改白名单,仔细想想,这并不奇怪。 AntiXSS 库默认对不在以下范围内的所有字符进行编码:0..9a..zA..Z。这组字符是安全的(因此位于白名单上),无需对它们进行编码。请注意,AntiXSS 库有不同的 javascript、html 和 url 编码列表。请不要对 url 使用 html 编码,因为您的应用程序中将存在安全漏洞。

请注意HtmlEncode上的白名单与 GetSafeHtmlFragment 上的白名单的工作方式不同。与HtmlEncode你说“请对不在白名单上的每个字符进行编码”,用 GetSafeHtmlFragment您说“请删除所有不在白名单上的标签和属性”。

当您使用 ASP.NET 4.0 时,我建议您不要(直接)使用 AntiXSS 库,而只需使用内置机制(例如 HttpUtility)来编码 Html。 ASP.NET 4.0 allows you to configure a HttpEncoder in the configuration file 。你可以自己写HttpEncoder使用 AntiXSS 库(AntiXSS 库的 future 版本可能会包含 HttpEncoder 实现)。通过这样做,您的整个应用程序(以及所有 ASP.NET 控件和自定义控件)将使用白名单编码而不是黑名单编码。

ASP.NET 4.0 还引入了 new code block for encoded text 。您可以使用名字:<%: Model.FirstName %> 。不过我个人发现<%= HttpUtility.HtmlEncode(Model.FirstName) %>更明确。

关于.net - 为什么使用 Microsoft AntiXSS 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com