and*_*ter 19 security asp.net-mvc
有吨的有关设计和安全发展(甚至在SO一堆职位)好论文,但他们似乎专注于什么,你应该做的.
然而,我所追求的是一个像黑客一样的思维清单.完成开发后应该完成的简单操作列表,以确保解决方案的安全性.
(更新:我最感兴趣的是黑盒清单 - "去一个页面,试试这个和那个"的东西,但白盒清单也可能是有意义的.)
这是我到目前为止所提出的:
HtmlEncode和编码UrlEncodehttp://www.example.com/foo?bar=HugeAmountOfData以确保约束输入并进行边界检查.Web层.
[ValidateAntiForgeryToken]属性以防止跨站点请求伪造攻击.Response.Write(直接或间接)永远不会用于显示用户输入.服务层.
数据库层.
SELECT *但始终明确指定列列表.@@TRANCOUNT等)中运行并显式提交/回滚它.评论?更正?缺少步骤?
使其成为社区维基,您可以随意编辑.
小智 4
添加到列表:
黑色:DoS 攻击 - 使用tinyget 或类似工具来模拟DoS 攻击,看看您的应用程序会做什么。
黑色:规范化攻击。提到一点,可能要特别关注下载情况下的目录遍历攻击。
White:使用 cookie 来获取敏感信息?请参阅 cookie 不用于敏感数据,并且不会在预期的时间间隔内保留在本地。黑色:在临时 IE/XYZ 文件夹中嗅探 cookie。
Black:同样,使用脚本化的tinyget或手动尝试查看暴力密码猜测是否有效,或者您的应用程序是否具有针对密码猜测攻击的智能延迟/拒绝功能。
黑色:进行任何攻击,看看管理员是否会自动收到攻击通知,还是只有攻击者知道。
“确保您的安全决策不依赖于 HTTP 标头信息” - http 标头用于 ntml/kerberos 身份验证?可能只是不要愚蠢地使用它们,不要发明或依赖引用等?
一般:使用商业黑/白盒安全扫描仪,可能很昂贵,但否则很难进行安全回归测试。