这里有一些通常所知的做法对于确保一视应用程序:

  • 编码输出
  • 参数化SQL
  • 测试你的搜索向后和向前
  • 1向散列的密码
  • 锁定帐户或限制登录尝试
  • 使用代码基于模拟当文件系统访问
  • 访问SQL锁定下来的用户名
  • 使用蜂蜜罐或验证码形式提交给反机器人

如果有任何我漏或误报,请随时作出贡献。

什么其他技术/最佳做法使用,或认为有关当笔测试自己的软件。你做什么"踢轮胎"之前应用中的生活。

什么笔测试服务或软件的使用如果有的话?

有帮助吗?

解决方案

所有的方法,使用modelbinding应确保与白名单或黑名单上的可绑定的属性。

string[] allowedProperties = new[]{ "Title", "Description"};
UpdateModel(myObject, allowedProperties);

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create([Bind(Include="Title,Description")] MyObject object )
{

}

这当然是要防止造请求,尝试更新/操纵你的对象的方式,不是目的。

其他提示

您的名单是良好的,虽然这是一个有点含糊不清。例如md4是一个单向散列,但是其极不安全,因为我可以产生碰撞我的桌面上,在不到一天的时间。sha256一的大盐的价值是一种更安全方法。(我知道即使这是描述不完整,不要火焰)

从来没有捕捉到所有安全检查表,将工作。具体应用程序可以有特定的脆弱性。有时,这些缺陷可逻辑错误,真的没有一个分类。

异10 网络应用程序漏洞是一个很好的资源,应该研究。最值得注意的是你失XSRF你的清单上,它可能毁灭性的攻击。有大量的"水槽"的基础的攻击你有没有列出。例如,如果攻击者可以通过在一个路由他选择的fopen? 一项研究猩 去过许多的这些攻击PHP.

您所有的建议适用于任何网应用程序,而不仅仅是软应用程序。

一个视具体建议,将东西像"瘦控制器、脂肪模型"。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top