首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏浮躁的喧嚣

    swift 内存安全

    Swift 会阻止你代码里不安全的行为。 例如,Swift 会保证变量在使用之前就完成初始化,在内存被回收之后就无法被访问,并且数组的索引会做越界检查 Swift 保证同时访问同一块内存时不会冲突,因为 Swift 自动管理内存,所以大部分时候你完全不需要考虑内存访问的事情 而如果你的代码确实存在冲突,那在编译时或者运行时就会得到错误 内存访问冲突 当你有两个访问符合下列的情况: 至少有一个是写访问 它们访问的是同一个存储地址 它们的访问在时间线上部分重叠

    22910编辑于 2023-11-22
  • 来自专栏Swift社区

    Swift | 内存安全

    简介 一般来说,Swift 会阻止代码中的不安全行为。例如,Swift 会保证变量在被使用前已经初始化,在释放某变量后其内存也会变得不可访问,以及检查数组索引是否存在越界错误。 编译器可以证明这样是内存安全的,这两个存储的属性不会以任何方式交互。 在保护内存安全时,限制结构体属性的重复访问并非是必须的。 内存安全是理想的保证,但是独占访问是一个比内存安全更严格的要求--这意味着即使有一些代码违反了独占访问的要求,它也可以是符合内存安全的要求的。 如果编译器可以证明对内存的非独占访问仍然是安全的,则 Swift 允许使用这种仅做到了内存安全的代码。 如果编译器无法证明这个访问是安全的,则它是不被允许进行访问的。

    88520发布于 2021-11-26
  • 来自专栏ClearSeve

    C++11内存模型

    缓存一致性 指令乱序执行一节中的示例输出1和4其实还可能跟缓存一致性有关,现代处理器是多核的,每个核都有自己的缓存,对于y可能会先于x写入到内存当中,然后线程2执行结束,写入到内存,最后线程1的x再从缓存写入到内存 Thread-1: Thread-2: x = 100; // A std::cout << x; // B C++11 C++11内存模型共有6种,分四类。其中一致性的减弱会伴随着性能的增强。 参考链接 【1】C++11中的内存模型上篇 – 内存模型基础 【2】C++11中的内存模型下篇 – C++11支持的几种内存模型 【3】理解 C++ 的 Memory Order 【4】如何理解 C++ 11 的六种 memory order 【5】《现代C++实战三十讲》中的内存模型与Atomic

    1K30编辑于 2022-02-11
  • 来自专栏技术分享

    C语言(11)----内存函数

    内存函数主要用于动态分配和管理内存,它直接从指针的方位上进行操作,可以实现字节单位的操作。 , size_t num); 作用:与strcpy类似,但是从内存的角度从source的位置开始向后复制num个字节的数据到destination指向的内存位置。 ⽬标内存块是可以重叠的。  格式 void * memset ( void * ptr, int value, size_t num ); 作用:memset是⽤来设置内存的,将内存中的值以字节为单位设置成想要的内容。 同时在重叠内存空间时实现覆盖原内容。 要求: • 使用memset函数时需要谨慎,确保不会意外覆盖原有的数据。

    25520编辑于 2024-06-18
  • 安全函数】memchr_s ():C11 安全内存查找的新范式与 memchr 深度对比

    在 C 语言内存操作的进化历程中,从追求效率到兼顾安全是重要的发展方向。memchr () 作为传统的内存字节查找函数,虽高效却缺乏必要的安全检查,成为缓冲区溢出攻击的潜在入口。 C11 标准引入的 memchr_s () 函数,在保留核心查找功能的基础上,构建了全面的安全防护机制,重新定义了内存查找的安全标准。 内存块扫描与验证(两者皆可,安全优先选 memchr_s ()) 在内存块中扫描特定字节时,两种函数都能完成任务,但 memchr_s () 提供更全面的安全保障: #include <stdio.h> ,通过循环调用安全查找函数,实现了对大型内存块的安全扫描。 兼容性策略:在不支持 C11 的环境中,应实现兼容的安全封装函数,模拟 memchr_s () 的安全特性 4.

    11410编辑于 2026-01-21
  • 来自专栏LINUX阅码场

    深入理解C11C++11内存模型

    2011年发布的C11/C++11 ISO Standard为我们带来了memory order的支持, 引用C++11里的一段描述: The memory model means that C++ code C++11引入memory order的意义在于我们现在有了一个与运行平台无关和编译器无关的标准库, 让我们可以在high level languange层面实现对多处理器对共享内存的交互式控制。 我们可以借助内存模型写出更好更安全的并发代码。真棒,简直不要太优秀~ ? C11/C++11内存模型 C/C++11标准中提供了6种memory order,来描述内存模型[6]: enum memory_order { memory_order_relaxed, - Frank Birbacher [ACCU 2017] C++11中的内存模型下篇 - C++11支持的几种内存模型 memory ordering, Gavin's blog c++11 内存模型解读

    2.9K30发布于 2020-06-04
  • 来自专栏pandacode_cn

    Swift基础 内存安全

    Swift基础 - 内存安全 翻译自:https://docs.swift.org/swift-book/LanguageGuide/MemorySafety.html 默认情况下,Swift 可以防止代码中出现不安全行为 ) ​ balance(&oscar.health, &oscar.energy) // OK } 在上面的示例中,奥斯卡的健康和能量作为两个内外参数来balance(_:_:)编译器可以证明内存安全得到保留 限制重叠访问结构属性并不总是必要的,以保持内存安全内存安全是理想的保证,但独家访问是比内存安全更严格的要求——这意味着一些代码保留了内存安全,即使它违反了对内存的独家访问。 如果编译器能够证明对内存的非排他性访问仍然是安全的,Swift允许此内存安全代码。 如果编译器无法证明访问是安全的,则不允许访问。

    53400编辑于 2023-07-17
  • 来自专栏一只程序原

    JVM内存与垃圾回收篇第11章直接内存

    11 章 直接内存 1、直接内存概述 直接内存 不是虚拟机运行时数据区的一部分,也不是《Java虚拟机规范》中定义的内存区域。 直接内存是在Java堆外的、直接向系统申请的内存区间。 Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11 Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\Heygo\Desktop\JVMDemo\out\production\chapter11 Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11 Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\Heygo\Desktop\JVMDemo\out\production\chapter11

    74720编辑于 2022-08-17
  • 来自专栏开发笔记

    线程安全&Java内存模型

    Java内存模型 Java内存模型(JMM)主要目标是定义多线程的情况下线程访问变量的规则。 JMM规定线程之间的共享变量存储在主内存中,每个线程都有一个本地内存(工作内存),本地内存存储了共享变量的副本。 ? 关于线程安全 什么是线程安全问题? (数据一致性问题) 如何解决线程安全问题? 核心思想:在同一时刻,只能有一个线程执行。 通过加锁使线程更加安全,也使程序的执行效率更低。 当一个线程对volatile修饰的变量进行读操作时,该线程直接读取主内存的变量。 volatile能否保证线程安全? 不能,保证线程安全需要同时具备原子性,可见性和有序性。 比较主内存的值和本地内存修改前的值是否一致,若一致,将修改后的值刷新到主内存,若不一致,当前线程放弃更新,将主内存数据刷新到本地内存,再次重试。

    67420发布于 2020-08-11
  • 来自专栏顶象技术业务安全专栏

    11月业务安全月报

    11月业务安全月报 | 台湾2300万人信息泄露;黑客两分钟即可破解安卓锁屏;乌克兰”IT军团“入侵俄罗斯中央银行导语:随着数字化的深入普及,业务愈加开放互联。 全国首个《信息安全技术关键信息基础设施安全保护要求》发布11月7日,市场监管总局标准技术司、中央网信办网络安全协调局、公安部网络安全保卫局在京联合召开《信息安全技术 关键信息基础设施安全保护要求》(GB 国外安全热点以威胁国家安全为由,美国禁止销售中兴、海康威视等电信和监控设备11月25日,美国联邦通信委员会(FCC)正式宣布,禁止进口和销售包括华为和中兴通讯在内的,中国科技巨头制造的电信和监控设备,认为这些设备 该安全漏洞的影响十分广泛,几乎所有未更新2022年11月补丁的,运行 Android 10、11、12 、13 版本的手机都受到影响。 印度政府发布《2022年个人数据保护法案》草案印度政府11月18日发布了《2022年个人数据保护法案》草案,自2018年7月首次提出以来,这是印度政府第四次修改该草案。

    77550编辑于 2022-12-02
  • 来自专栏从ORACLE起航,领略精彩的IT技术。

    Oracle 11g 安全加固

    1.安全加固的检查方向 2.安全加固检查safeCheck.sh 3.安全加固执行safeExec.sh 1.安全加固的检查方向 1.1.sysdba用户远程登录限制(查看Oracle登录认证方式 ,可以考虑删除scott账号 1.6.dba权限账户检查 select * from dba_role_privs where granted_role='DBA'; 1.7.数据库账户口令加密存储 11g 在$ORACLE_HOME/network/admin/sqlnet.ora中设置下面参数: SQLNET.EXPIRE_TIME=10 2.安全加固检查safeCheck.sh #! prompt =========================== prompt == 7.数据库账户口令加密存储 prompt =========================== prompt 11g =============== prompt 执行创建安全性校验函数的脚本 @?

    67941编辑于 2023-08-24
  • 来自专栏Android 开发者

    聚焦 Android 11 : 隐私和安全

    Android 安全工程主管 Sudhi Herle 上期 #11WeeksOfAndroid 系列文章中内容我们介绍了 联系人和身份,本期我们将聚焦 隐私和安全 。 Android 11 也持续在这些领域取得重要进展,本文中我们将分享有关 Android 隐私和安全的一系列更新和资源。 但首先,让我们快速浏览一下 Android 11 中那些最为重要的更新,用以保护用户隐私并提高平台的安全性。 Android 11 将为用户提供对敏感权限的更多控制权。 而 Android 11 为其添加了新的模块,同时保持了现有模块的安全属性。例如,可提供密码学原语的 Conscrypt 模块,在 Android 11 中同样能够通过 FIPS 验证。 感谢各位开发者在我们不断提高隐私性和安全性的过程中所展现的灵活变通能力,以及提供的有效反馈。您可以访问 Android 11 Beta 版开发者网站,了解更多功能。

    1.7K30发布于 2020-10-16
  • 来自专栏瓜农老梁

    Netty11# 非池化内存分配

    前言 非池化内存的分配由UnpooledByteBufAllocator负责,本文梳理下由其负责分配的堆内存和堆外内存如何实现的 。 1K使用堆内存,待分配的内存大于等于1K使用堆外内存。 Java8以及以下版本全部在堆内存分配 小结: 使用InstrumentedUnpooledUnsafeHeapByteBuf进行内存分配时: Java9以及以上版本:如果待分配的内存小于1K使用堆内存 直接在堆内存分配空间。 非池化堆内存分配总结 当使用Netty非池化进行堆内存分配时: 1.Java8及其以下版本:直接在堆空间分配内存

    92010发布于 2021-03-16
  • 来自专栏c++与qt学习

    操作系统内存分区与分页--11

    操作系统内存分区与分页--11 引言 内存分区 固定分区 与 可变分区 可变分区的管理过程 — 核心数据结构 可变分区的管理—请求分配 可变分区的管理—释放内存 可变分区的管理—再次申请 引入分页: 解决内存分区导致 ---- 引入分页: 解决内存分区导致 的内存效率问题 内存分区最大的缺点是什么呢? 内存分区无论采用哪种分配算法,都容易导致内存碎片的产生,随着分配次数增加,内存碎片会越来越多,当某个内存申请请求发起后,发现只有合并内存碎片才能够完成内存分配,这时候就需要进行内存的紧缩。 将披萨处理的思想换到内存管理上来,就是将内存分成页 针对每个段内存请求,系统一页一页的分配给这个段,假如这个段需要3页半大小的内存,那我就分配给他四整页内存。 问题:此时需要内存紧缩吗? 不需要内存紧缩,因为内存分配最小单元为页 最大浪费内存为4k,例如: 有个段需要3页多一丢丢的内存,此时还是需要分配给他四页内存,相当于浪费了接近一页内存,而一页内存在linux 0.11中的大小为4k

    1K30编辑于 2022-08-23
  • 来自专栏AI SPPECH

    11:堆风水与高级内存布局技术

    通过分析真实的CTF题目和漏洞利用案例,展示如何在复杂的堆保护机制下进行精确的内存布局,为CTF选手和安全研究人员提供全面的堆利用知识体系。 1. 本文将系统介绍堆风水与高级内存布局技术,分析堆分配器的内部工作原理,展示如何在现代堆保护机制下进行精确的内存布局,并提供实战案例和最佳实践,为CTF选手和安全研究人员提供全面的堆利用知识体系。 2. 工程实践意义、风险、局限性与缓解策略 5.1 工程实践意义 堆风水与高级内存布局技术对工程实践具有重要意义: 安全测试:帮助安全测试人员评估软件的堆安全性 漏洞修复:通过理解堆利用技术,开发更有效的漏洞修复方案 :如mimalloc,提供更强的安全特性 启用所有堆保护机制:ASLR、Heap Canary、Double Free Protection等 内存安全编程:使用安全的编程语言和库,如Rust、Safe 内存安全语言:推广使用内存安全的编程语言 6.2 挑战与机遇 未来堆安全领域将面临以下挑战与机遇: 挑战:攻击者不断发现新的堆利用技术 机遇:硬件和软件技术的发展为堆安全提供新的解决方案 挑战:堆分配器的复杂性使得安全修复变得困难

    13710编辑于 2026-02-25
  • 来自专栏腾讯云开发者社区头条

    腾讯云11·11:千亿订单背后的安全“暗战”

    这些能力通过多款产品,如业务安全(天御)、主机安全(云镜)、数据安全(数盾)、移动安全(乐固)、账号安全(祝融)、网站与流量安全、内容安全与风控安全,为客户提供安全保障。 本次我们将重点放在电商客户最常遇到的网络安全和业务安全展开介绍。 高防 IP 基于公网 IP 回源,在其他云或 IDC 机房的业务,都可以接入腾讯云高防 IP 的防护 网络安全防御实践 大禹是腾讯云 AI 安全战略的网站安全防御系统,大禹网站高防可抵御 SYN Flood 腾讯云天御系统安全监测方案 腾讯天御产品通过腾讯积累的安全大数据和防刷引擎,精准识别“薅羊毛”的恶意行为,避免企业被刷带来的巨大经济损失。其防御过程大概如下: 1 . 同时,通过提供完整的鉴权会话管理服务,来保证用户的信息安全

    7.1K41发布于 2017-11-13
  • 来自专栏CPP开发前沿

    【C++11】 使用C++11解决内存泄露--智能指针

    众所周知,C#和java中不需要开发人员自己释放内存,对象引用计数为零后.Net和Java虚拟机会对对象进行自动回收,从而防止内存泄露;但是C++语言中,在堆上分配的内存必须自己去管理,不用的时候要自己释放 ,如果管理不当就可能会出现内存泄露。 C++11提供了智能指针,使用智能指针后不需要用户自己释放内存空间,一旦使用时对象超出了自己的生命周期,就会进行自动释放,从而有效解决了内存泄露的问题。 避免循环引用,循环引用会导致内存泄露。 代码如下所示: std::unique_ptr<T> p(new T); std::unique_ptr<T> p1 = std::move(p); 在C++ 11中,并没有提供make_unique

    97710发布于 2021-11-16
  • 来自专栏c++与qt学习

    Java内存模型和线程安全

    Java内存模型和线程安全 Java内存模型 引言 volatile关键字 synchronized关键字 Java线程 Java线程安全 synchronized锁优化 锁优化技巧列举 自旋锁 锁消除 高速缓存的出现主要是为了解决CPU运算速度和主内存速度不匹配而引入的缓冲模块 ---- 上图是java的内存模型,Java线程的数据读写都只能从工作内存获取,不同线程的工作内存是隔离的、 此处的工作内存主要对应线程私有的虚拟机栈部分 指令重排序只会在多线程情况下存在并发问题 ---- volatile修饰的变量一定是并发安全的吗? volatile修饰符提供的两个作用并没有体现出其一定是并发安全的,上面的例子也证明了,那么为什么呢? 状态转换: ---- Java线程安全 不可变对象一定是线程安全的,如: String,Integer等 synchronized关键字实现互斥同步: 通过monitorEnter和monitorExit

    70460编辑于 2023-02-10
  • 来自专栏Rust语言学习交流

    【Rust日报】2021-11-17 Neon - 使用 Rust 创建内存和类型安全的 Node.js 模块

    Neon - 使用 Rust 创建内存和类型安全的 Node.js 模块 Neon除了内存和类型安全之外,应该在 Node.js 中使用 Rust Embedding 的原因还有很多。 ReadMore:https://gamozolabs.github.io/fuzzing/2021/11/16/rust_on_nt_mips.html pixels - 一个微小的硬件加速像素帧缓冲区 DirectX 11、WebGL2 和 WebGPU 支持正在进行中。 使用您自己的自定义着色器来获得特殊效果。 完美像素边界上的硬件加速缩放。 支持非方形像素纵横比。

    75520发布于 2021-11-22
  • 来自专栏嘉为动态

    微软安全公告—2016年11

    微软于北京时间2016年11月8日发布了14个新的安全公告,其中6个为严重等级,8个为重要等级。 ---- 2016年11月新的安全漏洞 以下是所有安全公告的内容,供您参考。 如果 Windows Video Control 无法正确处理内存中的对象,该漏洞可能允许远程代码执行。成功利用此漏洞的攻击者可以在当前用户的上下文中运行任意代码。 如果用户访问恶意网站时 Windows 动画管理器无法正确处理内存中的对象,则最严重的漏洞可能允许远程代码执行。 当 Windows 通用日志文件系统 (CLFS) 驱动程序不正确地处理内存中的对象时,该漏洞可能会允许特权提升。

    1.2K10发布于 2018-12-21
领券