代码之家  ›  专栏  ›  技术社区  ›  Phil.Wheeler

网站和数据库视图

  •  1
  • Phil.Wheeler  · 技术社区  · 14 年前

    网站访问数据库视图而不是使用存储过程的安全含义是什么?讨论中的观点只能被阅读,不能被写入。

    编辑

    所讨论的应用程序是使用实体框架(v.4)的ASP.NET MVC 2。

    2 回复  |  直到 10 年前
        1
  •  2
  •   David    14 年前

    一个安全含义——可能是最大的:视图使您可以访问相同的 SQL Injection 如果您正在基于用户输入构建select语句,那么直接访问表的缺陷就存在。

    这就是问题所在,而且只有在您将SQL语句基于输入的情况下。如果您的视图是静态的,并且从不根据输入进行筛选或排序,那么只需从视图中选择字段,那么对于返回相同结果而不带参数的存储过程,您就不安全了。

    除此之外,在我看来,使用存储过程只是一个好习惯,在SQL Server中,您可以从存储过程中获得优化功能,但这与安全性无关。

        2
  •  0
  •   Codex    10 年前

    视图根本不能让您接受注入攻击。错误的代码可以做到这一点。即使使用连接的/内嵌的SQL存储过程,也不会有问题。

    使用准备好的语句。你会没事的。视图比调试丑陋的存储过程容易100倍。