SDL检查

2023-11-20

SDL检查

在用 Visual Studio 编译比较早的代码时,经常会遇到错误:

错误 C4996 'wcscpy': This function or variable may be unsafe. Consider using wcscpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. BcpService e:\c800\pc\src\bcpservice\createindex.cpp 22

警告 C4200 使用了非标准扩展: 结构/联合中的零大小数组 BcpService e:\c800\pc\src\bcpservice\libusb.h 738

错误 C4996 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. BcpService e:\c800\pc\src\bcpservice\creatbcpfile.cpp 534

等。。。

在项目属性中关闭SDL检查后就可以解决该问题。

 

 

当然,最好是修改代码,使用错误提示中的修改。

但是某些情况下代码不允许修改,就需要关闭SDL检查。

什么是SDL检查

 

微软正在积极开发的Visual Studio11,不断寻找方法,以提高安全相关的功能。作为这项工作的一部分,我们正在更新一些增强/ GS编译器开关,这是默认,使基层的代码生成的安全功能,超越了现在熟悉的基于cookie的堆栈溢出保护。这些在以后的文章,我们将提供一些细节。

安全开发生命周期(SDL)/ GS编译器能协助安全软件开发的范围之外的建议。这些从具体的代码生成功能,如使用安全相关的编译器警告和更多的一般性建议适当初始化或消毒指针strict_gs_check范围。

这是第一次,我们希望能提供一个中央机制,使这些额外的安全性支持通过一个新的/ SDL开关。 / SDL的影响是双重的:

- / SDL SDL强制编译器警告是在编译过程中的错误处理。

- / SDL使额外的代码生成功能,如增加了栈缓冲区溢出保护和指针初始化或消毒,在有限的一套明确界定的情况下的范围。

这种双管齐下的办法,反映了我们的信念,安全软件是最好的实现相结合的检测,并固定在开发过程中代码中的错误与安全缓解的部署,将显着增加难以利用任何剩余的错误。

/ SDL的编译器开关默认是禁用的,并且可以在Visual Studio的用户界面,轻松地打开当前项目的属性页,并访问配置属性 - > C / C ++ - >常规选项启用。

那么,是什么/ SDL开关吗?

使一切都包含在/ GS/ SDL开关启用的功能是启用/ GS即启用/ SDL的一个超集。我们将提供更多的背景和额外的/ GS/ SDL在未来职位的特点,在深入细节。现在,我们注意到,它们包括:

启用下列SDL强制编译器警告视为错误:

Warning

Command line switch

Description

C4146

/we4146

A unary minus operator was applied to an unsigned type, resulting in an unsigned result

C4308

/we4308

A negative integral constant converted to unsigned type, resulting in a possibly meaningless result

C4532

/we4532

Use of “continue”, “break” or “goto” keywords in a __finally/finally block has undefined behavior during abnormal termination

C4533

/we4533

Code initializing a variable will not be executed

C4700

/we4700

Use of an uninitialized local variable

C4789

/we4789

Buffer overrun when specific C run-time (CRT) functions are used

C4995

/we4995

Use of a function marked with pragma deprecated

C4996

/we4996

Use of a function marked as deprecated

 一个开发人员如想以选择大部分的/ SDL的功能,但排除一个给定的警告编号(假设为例C4146)然后这可以通过在/ WD开关以禁用彗星/彗星++下,具体警告实现 - >命令行 - >附加选项在Visual Studio的用户界面:

 

strict_gs_check pragma是适用于所有的C/ C + +代码编译/ SDL。这指示编译器将考虑作为潜在的堆栈缓冲区溢出保护候选人更多的功能。Visual Studio 2010中引入的GS优化得到了提高strict_gs_check一起更好地工作,特别是使许多额外的安全检查从strict_gs_check被证明是不必要的和删除。

附加/ SDL代码生成功能,将在以后的职位更详细的覆盖。

Microsoft强烈建议使用/ GS开关,因为在以往的Visual Studio版本,在Visual Studio11新/ SDL开关提供更大的保障覆盖面的机会,期间和之后发展:停留在特定的安全利益,使用/ GS的更多细节调整在Visual Studio11和/ SDL。

当然,安全性开发生命周期(SDL)是一个完整的过程和开发安全的软件,这样的方法,包括远远高于只使用特定的编译器开关 - 阅读更多查找到SDL的额外资源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SDL检查 的相关文章

  • 使用 mono/nunit-console/4 在 Mac OS X 控制台上运行测试

    我安装了 Max OS X 10 11 1 上面装有 Xamarin 我编写了简单的测试类 只是为了测试在 Mac OS X 和 Ubuntu 上运行 Nunit 测试 该类实际上有一个返回字符串的方法 using System names
  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • 如何在 C# / .NET 中创建内存泄漏[重复]

    这个问题在这里已经有答案了 可能的重复 托管代码中是否可能存在内存泄漏 特别是 C 3 0 https stackoverflow com questions 6436620 is it possible to have a memory
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 指向特征矩阵的指针数组

    我在代码中使用 Eigen 的 MatrixXd 矩阵 在某个时刻我需要一个 3D 矩阵 由于 Eigen 没有三维矩阵类型 因为它仅针对线性代数进行了优化 因此我创建了一个 MatrixXd 类型的指针数组 Eigen MatrixXd
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 如何在服务器端按钮点击时关闭当前标签页?

    我尝试在确认后关闭当前选项卡 因此我将以下代码放在确认按钮的末尾 但选项卡没有关闭 string jScript ClientScript RegisterClientScriptBlock this GetType keyClientBl
  • 检查 RoutedEvent 是否有任何处理程序

    我有一个自定义 Button 类 当单击它时 打开特定窗口 它总是执行相同的操作 我添加了一个可以在按钮的 XAML 中分配的 Click 事件 就像常规按钮一样 当它被单击时 我想执行 Click 事件处理程序 如果已分配 否则我想执行默
  • 将二进制数据从 C# 上传到 PHP

    我想将文件从 Windows C 应用程序上传到运行 PHP 的 Web 服务器 我知道 WebClient UploadFile 方法 但我希望能够分块上传文件 以便我可以监控进度并能够暂停 恢复 因此 我正在读取文件的一部分并使用 We
  • 无法在内存位置找到异常源:cudaError_enum

    我正在尝试确定 Microsoft C 异常的来源 test fft exe 中 0x770ab9bc 处的第一次机会异常 Microsoft C 异常 内存位置 0x016cf234 处的 cudaError enum 我的构建环境是 I
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

    我有一个看起来像的视图模型 public class StoreItemViewModel public Guid ItemId get set public List
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 更改 Windows Phone 系统托盘颜色

    有没有办法将 Windows Phone 上的系统托盘颜色从黑色更改为白色 我的应用程序有白色背景 所以我希望系统托盘也是白色的 您可以在页面 XAML 中执行此操作
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte

随机推荐

  • MCU 常用的文件系统

    片外FLASH SPIFFS FATFS LittleFs 片上FLASH FlashDB EasyFlash
  • python3爬虫伪装代理IP

    在爬取类似 起点 色魔张大妈 这样的网站时 会被网站看出是爬虫机制 这时需要伪装成浏览器以及使用IP代理的方式来爬去正常内容 实例 import re import requests import urllib request from l
  • shopify上传主题

    shopify theme 多语言国际化开发 shopify theme 跨境电商开发 liquid 本地编辑shopify主题的方式一 shopify cli 的命令
  • 从《模仿游戏》认识图灵

    模仿游戏 剧情简介 模仿游戏这部电影主要讲述了在二战期间 英国为了破解德军的加密系统Enigma密码机招募了一批有才华的破译者来执行此项国家最高机密任务 艾伦 图灵就是其中之一 然而图灵孤僻的性格让他与别的同事不能融洽相处 图灵一意孤行要建
  • 计算机怎么解除c盘用户权限,电脑c盘文件夹拒绝访问怎么办 删除c盘文件如何获得管理员权限...

    c盘是我们系统文件存储的关键位置 当我们想要查看c盘的时候 出现拒绝访问的情况怎么解决呢 其实很简单 下面小编为大家带来打开c盘文件夹拒绝访问的详细解决方法 大家可以直接按照下面的步骤即可解决 电脑c盘文件夹拒绝访问怎么办 1 通常情况下
  • JVM监控工具和方法

    在JVM运行的过程中 为保证其稳定 高效 或在出现GC问题时分析问题原因 我们需要对GC进行监控 所谓监控 其实就是分析清楚当前GC的情况 其目的是鉴别JVM是否在高效的进行垃圾回收 以及有没有必要进行调优 通过监控GC 我们可以搞清楚很多
  • 代码点(code point)和代码单元(code units)

    1 解释一 char Java中 char类型为16个二进制位 原本用于表示一个字符 但后来发现 16位已经不够表示所有的字符 所以后来发展出了代码点表示字符的方法 代码点 code point 是指编码字符集中 字符所对应的数字 有效范围
  • 题目94:时间函数,一个猜数游戏,判断一个人反应快慢。

    import time import random play input 请问你想玩1 100猜字游戏吗 yes no n while play yes number random randint 1 100 guess int input
  • 148.排序链表(java)

    148 排序链表 题目描述 在 O n log n 时间复杂度和常数级空间复杂度下 对链表进行排序 示例 1 输入 4 gt 2 gt 1 gt 3 输出 1 gt 2 gt 3 gt 4 示例 2 输入 1 gt 5 gt 3 gt 4
  • oracle数据库 data not found的问题

    工作中写pkg的时候 遇到了这个问题 原因是在 select into的时候 可能会出现查出来是空值的情况 这个时候就会报错 解决方法是用count 先判断有没有数据 再根据有没有数据来决定要不要进行查询并赋值
  • LeetCode 面试16.18 模式匹配

    你有两个字符串 即pattern和value pattern字符串由字母 a 和 b 组成 用于描述字符串中的模式 例如 字符串 catcatgocatgo 匹配模式 aabab 其中 cat 是 a go 是 b 该字符串也匹配像 a a
  • Vue项目分包打包配置(包含dev)全过程

    今天领导要求支援某项目的分包配置 emmm 在参考了公司其他项目的分包操作后 依葫芦画瓢 中间也踩了好几个坑 简单记录下过程 一 拉代码 安装依赖 哈哈哈 上来就踩坑了 我拉了代码后 直接哐哐整 然后一堆依赖报错 我才发现 同事新增了依赖包
  • yyyy-MM-dd‘T‘HH:mm:ssZ的T是什么意思?为什么要用单引号引着

    背景 Java里的日期格式 通常我们看到 yyyy MM dd T HH mm ssZ 的写法是什么意思 尤其这个T作为分隔符为什么左右有单引号 这个单引号会打印出来吗 这个Z又是什么意思 是时区吗 如果是时区 输出的格式是什么 是类似于这
  • java上传图片、文件和富文本内容到服务器上,查看和删除文件

    1 上传富文本内容 前端的富文本内容传到后端 将富文本内容拼接成html页面代码 将内容转换成html文件上传到服务器指定位置进行存储 String profile data xiangmu linux服务器上项目文档存放目录 String
  • python导入excel模块_Python利用Psycopg2模块将Excel表格数据导入Postgressql

    import os import numpy as np import pandas as pd import xlrd import psycopg2 import redis conn redis Redis host localhos
  • python利用bs4获取网络小说

    所选定的小说网址 https www shicimingju com book xiyouji html 如果想更换其他小说资源 在上一级网址就行 https www shicimingju com book 代码如下 from bs4 i
  • jeecgboot问题解决方案

    常见问题Q A JEECG老版在线文档 点击进入 1 后台访问提示token错误 报错截图 解决方案 JeecgBoot后台的所有请求访问 增加了token机制 所以不能直接访问后台 而需要通过前台登录才能访问 默认前台访问地址 http
  • 探查Weblogic JDBC Multipool 问题

    问题描述 WebLogic Server MultiPool 有两种不同的类型 高可用性 MultiPool 和负载平衡 MultiPool 这两种算法互不相容 分别用于达成不同的目标 本模式提供有关这两种算法的信息 了解不同类型的 Web
  • 5.sklearn之转换器(划分训练集和测试集、以及标准化、归一化数据会用transform,独热编码也会用到)

    文章目录 1 什么是转换器 2 测试集和训练集 2 1 训练集 测试集 验证集 2 2 拆分训练集测试集有个问题 2 3 代码 3 标准化 3 1 上离差标准化代码 举一反三就好了 其他几个用法一样 3 2 sklearn 其他标准化函数
  • SDL检查

    SDL检查 在用 Visual Studio 编译比较早的代码时 经常会遇到错误 错误 C4996 wcscpy This function or variable may be unsafe Consider using wcscpy s