【问题标题】:MVC 5 security measuresMVC 5 安全措施
【发布时间】:2015-01-30 04:54:51
【问题描述】:

我正在开发一个 MVC 5 互联网应用程序,并且有一些与安全性有关的问题。

我需要手动实施哪些安全措施来确保我的互联网应用程序安全?

这是我目前所拥有的:

  • [ValidateAntiForgeryToken] 每个 HttpPost 函数的属性
  • Sanitizer.GetSafeHtml 具有 HTML 的模型属性上的函数 数据
  • 用于身份验证和授权的 Identity 2.1

提前致谢。

更新

该应用程序是一个简单的 MVC Internet 应用程序,其 Web 服务托管在 Azure 上。我正在使用 Entity Framework 6、Web API 2.0 和 MVC 5。我可以提供哪些相关信息?

【问题讨论】:

  • 这取决于你的应用程序做什么。我假设您已经在使用 https 来保护与客户的通信。如果您使用某些 SQL 数据库,则需要确保保护自己免受 SQL 注入攻击。您可以采取一些措施来预防/处理 DDOS 攻击等等。没有更多信息很难说。

标签: security asp.net-mvc-5 asp.net-identity-2 antiforgerytoken html-sanitizing


【解决方案1】:

这将为您提供 XSRF 和 Stored XSS。您还应该检查:

  • javascript 中的 DOM XSS(例如,使用查询字符串中的数据修改 DOM 时)。
  • JSON 劫持
  • 代码注入(例如,如果您使用的是 SQL DB,则为 SQL 注入)
  • 强制使用 HTTPS 登录(登录表单和登录帖子)
  • ...等...

最常见的漏洞不是技术错误,例如您应该:

  • 减少您信任的来自客户端的数据。例如,如果您有一个购物车,将价格作为隐藏字段放在购买表单中看起来是个好主意,因此服务器不需要去数据库获取该产品的价格,但是那么用户可能会篡改表单并以 0 美元甚至 -100 美元的价格购买。

  • 检查用户是否无法欺骗多步骤表单,例如允许他在不通过付款页面的情况下订购产品。

  • 检查如果您的应用程序按名称返回文件,则不能执行http://example.com/Home/GetFile?filename=..\..\Web.config 之类的操作。

  • 检查您是否在执行身份验证之外的授权。例如,用户 123 可能已通过身份验证,但无权检查用户 456 的个人资料。

  • ...等...

最好的办法是查看 OSWASP 页面:https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-24
    • 1970-01-01
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多