保护ASP.NET MVC应用程序清单(Securing ASP.NET MVC Applicati

2019-07-30 15:40发布

我找了一套准则,或者你可以去了用于保护公众ASP.NET MVC网站的清单。 我只是想确保部署的网站时,我没有做任何的明显的和众所周知的问题。

谢谢。

Answer 1:

  1. 与往常一样,请确保您正确的编码输出 - 我在这里说的编码,而不是的HTMLEncode通知。 如果你输出的内容出来的HTML,那么你想使用了Html.Encode - 但是如果你输出为JavaScript,那么你要使用JavaScript编码功能。 - 这将帮助你防止跨站脚本(XSS)
  2. 使用帮助防止在需要的地方(或者只是无处不在)CSRF攻击的帮手
  3. 根据您如何访问您的数据存储,如果它是一个SQL数据库,记得要保护自己免受SQL注入,既可以通过参数化查询,存储过程,LINQ或者你有什么。
  4. 当你测试-确保您的测试数据中包含狡猾的输出(东西哪里故障调用了Html.Encode很容易显露出来,也许是通过<script type="text/javascript">alert("XSS attack!");</script>XSS here! ,这同样适用于东西,这注入的JavaScript,犯错误现身!)
  5. 当模型绑定使用性能的白名单的方法,使用户无法不打算要绑定的粘合剂绑定属性!


Answer 2:

我有点做以下;

  1. 单独我的顾虑。 管理员在管理文件夹等。
  2. 在要求您先登录的所有操作[授权。
  3. 所有了Html.Encode数据输入字段。
  4. 的ActionResult创建([装订(前缀= “”,排除= “ID”)]为MyModel newModelObject)<==排除的ID,可以在攻击中使用

除此之外...



Answer 3:

以下是一般ASP.NET措施

  1. 设置调试=在web.config中假
  2. 打开自定义错误
  3. 加密你的cookies
  4. 验证所有输入
  5. 启用请求验证
  6. 编码您的输出


Answer 4:

不要使用默认的GET上,除非绝对必要的行动。 举例来说,如果你有一个DeleteUser的行动,不具有[AcceptVerbs(HttpVerbs.Post)]就可以了,也可以通过被称为

<img src="http://yoursite/admin/DeleteUser/1" /> 

这将由谁“意见”的形象被调用。



文章来源: Securing ASP.NET MVC Application Checklist