我刚刚开始致力于实现我的第一个面向公众的网站。由于我对此不熟悉,因此我认为有必要列出常见的陷阱、它们是什么以及如何避免它们。
我正在寻找类似的东西:
- SQL 注入(inject)(我知道这个,但如果有人知道分析网站注入(inject)漏洞的工具,那会很有用)。
- 密码存储不正确。我知道我应该用盐。 ASP.NET MVC 为我提供了哪些工具来执行此操作?
- 登录速率限制(Jeff 今天在 Coding Horror 中提到过)。我如何在 ASP.NET MVC 中实现这个?我可以使用标准成员(member)提供商实现来做到这一点吗?
- XSS 到底是什么?ASP.NET MVC 工具箱中有哪些工具可以避免 XSS?
- 等等
如果某个主题已在另一个问题中讨论过,那么快速总结和指向该问题的链接将是一个好主意。
最佳答案
- SQL 注入(inject) - 使用参数化查询!如果您使用 StringBuilder 类或字符串连接来构建 SQL 查询,则很可能容易受到 SQL 注入(inject)的攻击。
- XSS - 如果您使用 MVC 帮助程序(如
=Html.Encode(yourPossibleCompromishedData)
)将数据呈现到您的页面,您应该没问题。这些帮助程序旨在阻止在浏览器上执行注入(inject)的代码。 ASP.NET 还具有表单保护功能,可阻止恶意代码发布到您的操作中(这不是 MVC,而是 aspnet 本身)。 - 密码存储不正确。使用内置的 aspnet 成员(member)提供程序 - 它使用良好的模式(salt..)来存储密码等。
- 登录速率限制 - 我相信有一些 contrib 项目可以缓解这种情况(如果内置提供商尚未这样做)
- XSS 到底是什么?ASP.NET MVC 工具箱中有哪些工具可以避免 XSS?阅读:XSS 。 MVC 1.0 为表单提供了
=Html.ValidationSummary()
隐藏字段,以减少跨站点脚本攻击。
关于asp.net-mvc - 网站安全陷阱以及在 ASP.NET MVC 中我可以做什么来避免/减轻它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/834061/