如何提高此项目的安全性?

时间:2016-07-14 08:13:57

标签: c# asp.net asp.net-mvc security authentication

前言:我是开发安全商业应用程序的新手,我知道我可能过于敏感。

我作为一名自由职业者与一名主管一起工作,该项目使用截断版本的Forms Authentication和SHA1 hash sans salt。该项目没有使用其他安全性,我已明确命令不使用通常带有MVC应用程序的任何内置安全性,以及一些渲染/脚本库和用于角色身份验证的内置方法或数据注释。

据我所知,应用程序不会与遗留代码交互,使用这些方法的选择不在于与任何现有代码库的向后兼容性。

该项目使用home brew方法进行加密,角色和安全性,使用SHA1版本并覆盖或不使用许多Forms身份验证方法。

应用程序存储的数据将包括从小型企业到政府实体的各种实体和个人的财务和个人记录。

我已多次提到,我对应用程序不使用大多数MVC安全工具这一事实感到不舒服,敦促我的老板让我使用更多安全性,并记录了我对项目的问题。

我还花了几个小时阅读Asp.Net Identity和其他工具,准备根据项目要求定制它们,同时保留我认为必要的内容,但被拒绝这样做。

尽管我担心,但我想尽可能地完成项目,最好是不会让用户太糟糕或者我自己对这里可能暴露的数据类型产生法律后果。

鉴于以下条件,我想知道是否有任何具体方法可以提高该项目的安全性:

  1. 无法使用OWIN / OAuth或Asp.Net Identity。
  2. 必须对同一个表执行初始身份验证,其中敏感用户和财务信息以纯文本格式存储。所有后续身份验证和角色管理都是针对存储会话变量的自酿啤酒代码执行的。
  3. 密码不能使用盐。
  4. 密码长度是创建密码的唯一要求,所需的长度非常短。
  5. 无法跟踪或限制用户尝试访问或登录系统的次数。
  6. 无法使用双因素身份验证。
  7. 无法将身份验证票证或安全Cookie设置为即将过期。
  8. 不能将数据注释用于角色,授权,并且在某种程度上可以对传入数据进行验证(某些内容已被删除,有些则没有)。
  9. 无法使用其他任何人的工具来保障安全。
  10. 无法使用任何内置类创建或限制角色/必须使用自制brew方法仅限制角色。
  11. 无法使用User.Identity对象。
  12. 一般而言,由于存储数据的性质,我担心家庭酿酒的安全性,再加上缺乏现有的安全工具,已经造成了一种情况,即敏感信息不会非常困难。露出。

    我与我的主管的沟通非常糟糕。我希望任何回复都会给我更多/更好的方式来传达我所看到的漏洞。毫无疑问,我此刻对我的老板很讨厌,可能是我们沟通失败的一个因素,但我非常非常担心这一切。

    而且,我准备好听到我过度敏感或我错了。我敏锐地意识到,作为一名新开发人员,我还没有充分了解该领域。我的绝大部分经验都是学术性的,我知道课堂不一定是软件开发实际应用的好模型。

    我也准备好听到我应该完成这个项目并让我的老板独自一人。

    但据我所知,无论可以说是什么,我创造的东西都很容易被打破,我觉得有必要尝试做些事情让所有人都难以理解原因如上。

1 个答案:

答案 0 :(得分:2)

根据您在此处所写的内容,这听起来就像您不想参与的项目。您列出的限制听起来就像他们正在构建一个90年代的Web应用程序。听起来他们已经涵盖了所有基础,如果你打算让你的应用程序安全,那么你不想这样做。

我唯一能想到的就是你应该确保他们使用https。此外,Captchas尚未在此明确列出,但它们可能属于第三方工具。 您可能应该修改自制代码库以确定是否可以加强它?

你应该花很长时间思考这项工作是否值得这么麻烦......