• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

针对软件测试开发技术 .NET 框架的安全编码指南

发布: 2009-8-17 10:54 | 作者: 不详 | 来源: 领测软件测试网 | 查看: 85次 | 进入软件测试论坛讨论

领测软件测试网

可以将 LinkDemands 放在接口上,以有选择地挑出某些接口,使其不能由部分信任的代码使用(例如,在使用 AllowPartiallyTrustedCallers 属性时)。

如果在不包含 AllowPartiallyTrustedCallers 属性的程序集中定义接口,则可以在部分信任的类上实现该接口。

如果将 LinkDemand 放在一个实现接口方法的类的公共方法上,在随后强制转换到该接口并调用该方法时,将不会执行 LinkDemand。在这种情况下,因为是对接口进行链接,所以只考虑接口上的 LinkDemand。

应当审阅以下各项是否有安全问题:

接口方法上的显式链接请求。确保这些链接请求提供了预期的保护。确定恶意代码是否可以使用强制转换来避开前面描述的链接请求。

具有链接请求的虚拟方法。

它们实现的类型和接口应当一致地使用 LinkDemands。

虚拟内部重写

在确认代码对其他程序集不可用时,需要了解类型系统可访问性的细微差别。声明 virtual 和 internal 的方法可以重写超类的 vtable 条目,并且只能在同一个程序集的内部使用,因为它是内部的。但是,重写的可访问性是由 virtual 关键字决定的,并且只要代码能够访问类本身,就可以从另一个程序集对该可访问性进行重写。如果重写的可能性比较小,请使用声明性安全解决它,或者删除 virtual 关键字(如果它不是必需的)。

  包装程序代码

包装程序代码(特别是在包装程序比使用它的代码具有更高可信度时)可以显露一组独特的安全漏洞。如果没有将调用方的受限制权限包括在适当的安全检查中,则代表调用方所执行的任何操作都是可能被利用的潜在漏洞。

不要通过包装程序来启用调用方本身无法执行的某些操作。在执行某些涉及受限制安全检查的操作时(与完整的堆栈审核请求相反),会有特殊的危险性。涉及到单一级别的检查时,在实际调用方与可疑 API 元素之间插入包装程序代码,可以很容易地使安全检查在不应当成功时成功通过,从而降低了安全性。

委托

无论何时,如果您的代码从可能调用它、但信任度较低的代码那里取得委托权,请确保您不会让信任度较低的代码提升它的权限。如果您取得委托权并随后使用它,那么,如果委托中或委托下面的代码试图执行受保护的操作,则创建委托的代码将不会在调用堆栈中,并且不会测试它的权限。如果您的代码和委托代码具有比调用方更高的特权,这将使调用方能够在不成为调用堆栈一部分的情况下改变调用路径。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网