有大量关于安全性设计和开发的优秀论文(甚至还有一大堆关于安全性的文章),但它们似乎都集中在你应该做什么( what you do )上。
然而,我所追求的是一份像黑客一样思考的清单。这是一个简单的操作列表,一旦你完成了开发,你就应该完成这些操作,以确保解决方案的安全性。
(更新:我最感兴趣的是黑盒检查列表-“转到页面,尝试这个和那个”之类的事情,但白盒检查列表可能也会感兴趣。)
这是我到目前为止想出的一些东西:
安全黑盒清单
<代码>H115自由格式输入是使用<代码>D18和javascript编码的自由格式输入
为了确保您约束输入并通过GET执行边界提交POST操作,为了确保“
http://www.example.com/foo?bar=HugeAmountOfData
,上传大小/格式不正确的文件(巨大文件、空文件、具有重命名扩展名的可执行文件等)以确保上载得到处理,以便从UI检查?)确保使用绝对URL作为没有正确权限的用户访问该URL,以确保通过操作/控制器对提供不存在的详细信息(如不存在的产品it、您无权访问的项目等)的URL进行明确的权限测试,确保通过HTTP returned.安全白盒检查清单
Web层。
[ValidateAntiForgeryToken]
属性,以防止跨站点请求伪造攻击。Response.Write
(直接或间接)从不用于显示用户输入。服务层。
中操作的信息泄露给client.
数据库层。
SELECT *
,但始终指定更新/删除存储过程在事务内操作的列的列表(通过@@TRANCOUNT
等),并显式地提交/回滚它。评论?更正?缺少步骤?
让它成为一个社区维基,你想怎么编辑就怎么编辑。
https://stackoverflow.com/questions/2183890
复制相似问题