首页 > 其他分享 >Rust的安全性和稳健型

Rust的安全性和稳健型

时间:2023-03-14 17:37:16浏览次数:43  
标签:函数 未定义 代码 unsafe 稳健 安全性 Rust 健全

Rust是围绕安全性和稳健性而设计的。也就是,安全代码是不使用unsafe关键字的代码,

声音代码是不会导致内存损坏或其他未定义行为的代码。“未定义行为”(UB) 在 C、C++ 和 Rust 等语言中具有特定含义,不同于“未指定”或“实现定义”行为。

Rust 最重要的特性之一是承诺所有安全代码都是可靠的。但是当 unsafe涉及到代码时,这个承诺可能会被打破,而且unsafe代码几乎总是在某个地方涉及到。

数据结构喜欢Vec并且在其实现中HashMap有unsafe代码,就像任何与File::open操作系统对话的函数一样。这就引出了一个常见的问题:“如果 Rust 不能保证所有安全代码都是可靠的,它怎么能成为内存安全的语言呢?”

Rust有一个被认为是未定义的行为列表。声音函数是保持以下不变性的函数:任何只调用声音函数且不包含任何其他unsafe代码的程序都不能提交UB。

不直接或间接使用代码的函数unsafe保证是可靠的,一个不unsafe直接使用任何代码而至调用其他声音函数的函数没根据定义也是声音,但是unsafe直接使用代码的函数和模块可能不健全,不健全函数的调用者也可能是不健全。模块的安全、公共API中的任何不健全都是错误的。

参考来源:https://jacko.io/safety_and_soundness.html 

标签:函数,未定义,代码,unsafe,稳健,安全性,Rust,健全
From: https://www.cnblogs.com/ftkj-2018/p/17215666.html

相关文章

  • java.security.KeyStoreException: problem accessing trust store
    发送邮件,使用了ssl认证,配置了相关代如下: 相同的配置在本地能发送邮件,在测试环境发送出现了下面的异常: 网上找了一些解决办法,说是把\jre\lib\security下的两个jar包......
  • Rust 3
    https://www.jetbrains.com.cn/rust/https://yew.rs/zh-Hans/docs/getting-started/introductionrustuptargetaddwasm32-unknown-unknown#notethatthismightta......
  • Rust 2
    ThisisthesourcecodeofthetraditionalHelloWorldprogram.//Thisisacomment,andisignoredbythecompiler.//Youcantestthiscodebyclickingthe......
  • Rust 1
    curl--proto'=https'--tlsv1.2-sSfhttps://sh.rustup.rs|shRustisamodernsystemsprogramminglanguagefocusingonsafety,speed,andconcurrency.Itac......
  • 软件体系架构安全性战术论文
    软件体系架构安全性战术刘柏(石家庄铁道大学 河北省石家庄市 050000;)摘 要:随着软件体系结构在软件工程中的研究与应用越来越广泛,以及学术界和产业界对软件安全性认识的......
  • 【质因数分解算法详解】C/Java/Go/Python/JS/Dart/Swift/Rust等不同语言实现
    关于质因数分解算法的不同语言实现,通过实例来看不同语言的差异什么是质因数算法?即任意一个合数可以分解为多个质数相乘。例如:20=2*2*545=3*3*5210=2*......
  • 公司文件经常需要外发给客户,怎么确保外发文件的安全性?
    随着信息化技术的不断发展,数据安全对于企业来说变得越来越重要,企业在日常运营过程中,经常会需要与外部的客户、上下游合作伙伴发送文件,在文件外发过程中,如何确保文件的安全......
  • Azure虚拟桌面专题之十一:解决DomainTrustCheck失败导致会话主机状态不可用问题
    在创建完主机池并添加会话主机之后,在主机池概述中发现虚拟机总数和不可用状态数量一样,也就是说所有的虚拟机状态都处于不可用刚开始创建之后的几分钟内状态不可用是正常现象......
  • 远程连接-RustDesk
    Docker搭建采用的是DockerCompose连接不加密version:'3'networks:rustdesk-net:external:falseservices:hbbs:container_name:hbbsports:-211......
  • 用Rust实现的长连接方案
    在上一篇文章,我们讲到了长连接常见的实现方案,相信大家对长连接已经有一定的了解了,这篇文章我们会讲FeatureProbe的长连接实现方案。一、为什么FeatureProbe需要长连接Feat......