C# 以下哪种方法可以更好地防止XSS攻击?

C# 以下哪种方法可以更好地防止XSS攻击?,c#,encoding,xss,C#,Encoding,Xss,我正在实施输入编码以防止XSS攻击,我没有什么问题 对输入进行编码并将编码后的数据存储在数据库中是否更好?如果是这样,您如何在整个项目中处理字符串比较?您是否也对字符串进行编码以进行比较?这似乎是一种“不太好”的方法,因为我必须调整整个项目,未来的程序员每次比较两个字符串时都必须记住这一点 我是否应该将输入直接放入数据库并对其进行编码以作为响应?这似乎是一个更好的方法,但我不是很确定。这就是我在这里发帖的原因。另外,如果这是首选方式,是否有任何数据库管理应用程序(如phpMyAdmin等)直接从

我正在实施输入编码以防止XSS攻击,我没有什么问题

  • 对输入进行编码并将编码后的数据存储在数据库中是否更好?如果是这样,您如何在整个项目中处理字符串比较?您是否也对字符串进行编码以进行比较?这似乎是一种“不太好”的方法,因为我必须调整整个项目,未来的程序员每次比较两个字符串时都必须记住这一点

  • 我是否应该将输入直接放入数据库并对其进行编码以作为响应?这似乎是一个更好的方法,但我不是很确定。这就是我在这里发帖的原因。另外,如果这是首选方式,是否有任何数据库管理应用程序(如phpMyAdmin等)直接从数据库执行JavaScript


  • 这是我第一次这样做,所以我希望有更多经验的开发人员能提供一些见解。

    我以前已经回答过很多次了,但是2绝对是正确的方法,但是让我们调整一下


    在进入的过程中,您需要验证数据,以确保数据根据域是有效的。例如,您可能想要禁止某些字符(或者更好的是,使用允许字符的白名单)。例如,没有理由允许一个人的名字包含“是(2)”当然是更好的方法。另外,使用一个自动执行的模板引擎。@Ryan感谢您的快速响应。我目前正在使用.NET中提供的AntiXSSEncoder类。这足够了吗?如果您感兴趣,我还更新了第二个问题。我不是ASP.NET专家,但它似乎有点脆弱-可能更喜欢Razor?关于:您的编辑:不,那将是phpMyAdmin中一个可怕的漏洞。@Ryan好的。再次感谢。我想你可以将其作为答案发布,因为我不确定除了接受它之外还能做什么。我会等待ASP.NET专家提供明确的模板化建议。=)在发布不过,你们数据库中的em普遍适用。这或多或少是我所期望的,现在我确信这一点。谢谢你们的回答。非常感谢。