Dav*_*vid 12 .net security owasp winforms
我不确定这是关于主题还是不在这里,但它是如此特定于.NET WinForms我相信它在这里比在Security stackexchange站点更有意义.
(此外,它与安全编码严格相关,我认为这与任何询问我在整个网站上看到的常见网站漏洞的问题一样.)
多年来,我们的团队一直在对网站项目进行威胁建模.我们的模板的一部分包括OWASP Top 10以及其他众所周知的漏洞,因此,当我们进行威胁建模时,我们始终确保我们有一个文档化的流程来解决每个常见漏洞.
例:
SQL注入(Owasp A-1)
无论如何,我们使用OWASP Top 10作为网站特有的众所周知的漏洞的起点.
(最后到了问题)
在极少数情况下,当Web应用程序无法满足需求时,我们会开发WinForms或Windows Service应用程序.我想知道是否有一个等效的WinForms应用程序安全漏洞列表.
在我的头顶,我可以想到一些....
是否有这样的列表,甚至是这样一个列表的几个版本,我们可以从中借用来创建自己的列表?如果是这样,我在哪里可以找到它?
我一直无法找到它,但如果有的话,对我们以及其他WinForms开发人员来说将是一个很大的帮助.
Ste*_*ven 12
Web环境和桌面环境之间存在很大差异.在开发网站和服务时,您不信任的是用户(用户输入).在运行桌面应用程序时,不受信任的是应用程序本身,或者至少,系统管理员想知道应用程序本身是否没有造成任何伤害,因为本地计算机上运行的代码存在风险通过它自己.
从某种意义上说,对于您作为桌面应用程序的开发人员而言,安全规则并不总是适用,因为您运行的应用程序不是黑盒子,而是白盒子.使用Web服务/站点,您希望攻击无法更改内部状态,但对于任何桌面应用程序(Java,.NET,本机),在应用程序运行时更改应用程序的状态非常容易.运行,尤其是Java和.NET,调试和反编译应用程序非常容易.
换句话说,您必须考虑完全破坏桌面应用程序,如果存在风险,则必须将必须安全的所有内容(身份验证,授权,验证)提取到外部(Web)服务.对于此服务,适用"正常"OWASP规则.
您应该注意的事项是,当桌面应用程序直接连接到数据库时,很难完全保护您的数据层.例如,在这种情况下,SQL注入不是桌面应用程序的问题,因为当应用程序可以直接连接到数据库时,用户也可以.如果用户可以连接到数据库,他可以执行任意查询.这是SQL注入的一种极端形式,但它完全跳过了您的应用程序.
尝试保护2层应用程序通常意味着将存储过程用作中间(服务)层(并阻止对表的直接访问).开发和维护存储过程比开发.NET(Web)服务要昂贵得多.
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |