【转】VS 安全开发生命周期(SDL)检查
【转】VS 安全开发生命周期(SDL)检查
前面在学习使用google的protobuf时在VS2012中一直无法编译编译通过,经过查找一些资料原来发现,并不是protobuf的问题,而是自己在使用VS2012时,没有完全了解VS2012的强大功能,和跟以前VS2010的差别,导致无法编译通过。
现在就来说说为什么没有编译通过,在VS2012创建项目时,会有一个勾选项,叫做“安全开发生命周期(SDL)检查”,这个东西是微软在VS2012新推出的东西,为了是能更好的监管开发者的代码安全,如果勾选上这一项,那么他将严格按照SDL的规则编译代码,会有一些以前常用的函数无法通过编译,比如在VS2010中的scanf是warning那么在VS2012中就是error了。
查看MSDN中对SDL的描述,SDL检查会视以下告警为错误:
/sdl 启用警告 |
等效的命令行开关 |
描述 |
---|---|---|
C4146 |
/we4146 |
一元负运算符应用于无符号类型,从而导致无符号结果。 |
C4308 |
/we4308 |
一个负整型常数转换为无符号类型,从而导致一个可能无意义结果。 |
C4532 |
/we4532 |
__finally /finally中的关键词,使用continue, break 或 goto在异常终止块未定义行为。 |
C4533 |
/we4533 |
初始化变量的代码不会执行。 |
C4700 |
/we4700 |
使用未初始化的局部变量。 |
C4703 |
/we4703 |
对一个潜在的未初始化的局部指针变量的使用。 |
C4789 |
/we4789 |
当使用时,请缓冲区溢出特定 C 运行时 (CRT) 函数。 |
C4995 |
/we4995 |
使用函数的标deprecated。 |
C4996 |
/we4996 |
使用函数的标记作为deprecated。 |
也就是在编译的时候,当SDL检查启用时,编译器会严格检测缓冲区的溢出,并且会在delete某个指针时,自动为这个指针定义一个非有效的值,防止在delete以后仍用到这个指针时出错。还有就是会在你定义一个对象时,自动为这个对象赋值零。
从这些功能来看,有些功能还是不错的,不但方便了程序员使用也增强了程序的健壮性,但是对老版本程序的兼容就会出现问题,以前程序中编译通过的内容也许在VS2012中就没有办法通过,还是大家根据自己的习惯自行考虑是否使用这个东西吧。
另:还有一个选择打开和关闭SDL检查的位置就是:项目属性->配置属性->C/C++->SDL检查,选测是或者否
转自:http://blog.csdn.net/angle635/article/details/22035427
posted on 2018-02-11 09:47 时空观察者9号 阅读(...) 评论(...) 编辑 收藏
【转】VS 安全开发生命周期(SDL)检查相关推荐
- 【应用安全】微软的安全开发生命周期(SDL)
[应用安全]微软的安全开发生命周期(SDL) 0x01 SDL介绍 安全开发生命周期(SDL)即Security Development Lifecycle,是一个帮助开发人员构建更安全的软件和解决安 ...
- SDL介绍----4、S-SDLC安全开发生命周期
文章目录 一.S-SDLC 二. S-SDLC流程 三.S-SDLC项目流程 一.S-SDLC OWASP Secure Software Development Lifecycle Project( ...
- 软件安全开发生命周期-基础理论
一.SDL简介 SDL security development lifecycle(安全开发生命周期),是微软提出的从安全角度指导软件开发过程的管理模式.SDL是一个安全保证的过程,起重点是软件开发 ...
- 在软件开发生命周期中使用应用程序验证器
转自https://msdn.microsoft.com/zh-cn/library/aa480483.aspx#EHAA 发布日期 : 2006-6-5 | 更新日期 : 2006-6-5 摘要 M ...
- 【应用安全】S-SDLC安全开发生命周期
0x01 S-SDLC简介 OWASP Secure Software Development Lifecycle Project(S-SDLC)是OWASP组织首个由OWASP中国团队独立发布并主导 ...
- 移动开发的软件开发生命周期介绍(二)
Stabilization--稳定期 Stabilization is the process of working out the bugs in your app. Not just from a ...
- 移动应用程序开发_移动应用程序开发生命周期-从开发到应用程序商店的应用程序之旅
移动应用程序开发 Lately, app stores have witnessed a meteoric rise in the number of apps available to them. ...
- 软件安全开发生命周期(SSDL)全景图
对于软件安全研发过程,不同的项目会采用不同的过程模型,使用不同的工具,会有不同的门控要求及不同的输出物,下面简单介绍下我所理解的软件安全开发过程 一.软件安全开发全景图 首先我们先根据软件开发生命周期 ...
- 在软件开发生命周期中的安全性
本文介绍了CLASP,一个应用软件安全性过程和对Rational统一过程(RUP)的插件,由Secure Software开发的环境.CLASP提供给组织一种结构化的方法,在软件开发生命周期过程中处理 ...
最新文章
- 通过例子10分钟快速看懂pad_sequence、pack_padded_sequence以及pad_packed_sequence
- JavaScript为unicode编码转换为中文
- linux怎么用两个进程传值,linux下的C开发14,可执行程序如何传递参数?模拟shell执行命令...
- Push代码:Git@github.com: Permission denied (publickey)
- 文件上传下载流程设计
- [转载] C#面向对象设计模式纵横谈——7. Adapter适配器模式
- 使用std::function 把类成员函数指针转换为普通函数指针
- Java多线程之Runable与Thread
- Lesson 3 Part 2 logistic regression
- WINDOWS NT/2000下如何屏蔽CTRL+ALT+DEL
- win7 兼容 因特尔十代_高配主板想用win7咋办 Intel10代CPU配上驱动总裁玩转win7
- 如何成为一名汽车软件工程师?
- 微信小程序的图片上传及图片预览功能
- 英文网站源码 国外财经资讯商业新闻整站源码 全自动采集发布 广告联盟网站
- 加密word文档脱壳教程
- PNP三极管限流电路分析
- MATLAB识别实验,基于MATLAB的图像识别
- ubuntu 18.04安装 远程控制软件 TeamViewer 亲测有效简单
- check异常和uncheck异常的区别b
- 《非常网管:网络管理从入门到精通(修订版)》一1.1 计算机网络基础
热门文章
- 笔记-信息系统安全管理-《信息安全等级保护管理办法》
- Java中怎样遍历两个Date日期之间的每一天
- php表单复选传值,jQuery+SpringMVC中的复选框选择与传值实例_jquery
- matlab遗传算法无人机问题,基于改进遗传算法的无人机路径规划
- 神策数据如何助力36氪实现数据运营?
- java8升级java11到底敢不敢?
- 教你如何将自己的脚本代码放到服务器上运行
- 把字符串每隔四个字符使用“-”中横线分隔的方法
- SCN试验之二 checkpoin scn 与数据库scn的关系
- QTP的那些事---通过html标签的属性获取对象(类似onclick的属性)