首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏陈冠男的游戏人生

    智能合约:访问控制缺陷

    访问控制缺陷是因为编写 solidity 智能合约的时候,对于某些判断的定义不严谨或者笔误,导致的某些敏感功能的访问验证被绕过问题。 = 应该是 == 的,这样结果反而是除合约所有者之外的所有人都可以更改了,实际上韩国有个区块链项目 ICON(ICX) 的智能合约就出现过这个问题 漏洞防范 [38hd8nikac.png] 必须对由于表征权限的变量和表示进行严格的控制

    64641发布于 2020-05-18
  • 来自专栏全栈程序员必看

    Android11 无Root 访问data目录实现、Android11访问data目录、Android11解除data目录限制、Android11 data空白解决

    Android11 无Root 访问data目录 实现 正文开始 关于Android11权限变化 作为普通安卓用户该如何方便快速地访问Android/data目录 开发者该如何实现无ROOT访问Data 解决方案 SAF方案缺点 放大招,ROOT权限直接解锁后带权访问Data目录 结语 封装好的工具类 正文开始 关于Android11权限变化 谷歌在Android11及以上系统中采用了文件沙盒存储模式, 这个Android11上Android/data受限后,我觉得这个是很好的解决方案了,毕竟可以实现无Root访问并实现管理。 SAF方案缺点 很显然,通过SAF文件存储框架访问文件,速度和效率远远低于File API,因为SAF本来用途就不是用来解决Android11/data目录文件访问的。 当然,这个方案肯定会有些不如意,但是这已经是没方案中的最好的办法,毕竟谷歌限制不让你访问data目录,我们某些涉及文件管理的应用又确实需要访问,方案亲测可用,我已经按照以上方案在我的app中进行了Android11

    18.8K31编辑于 2022-09-14
  • 来自专栏Python机器学习算法说书人

    Python设计模式(11):访问者模式

    访问者模式是指作用于一个对象结构体上的元素的操作。访问者可以使用户在不改变该结构体中的类的基础上定义一个新的操作。 访问者模式的类图如图所示。 ? 可以有多种具体的访问者类,各自完成特定的目的,如一个访问者类是计算价格,另一个访问者类则是计算存货数量。因此需要定义一个抽象的访问者父类 Visitor 以及用于各种特殊目的具体的子类。 事实上,如果每个被访问的子类都有相同的接口,包括构造方法、其他方法、参数都一致,则访问者类只需要设计一个访问方法,在该方法中含有一个用于区别不同的被访问的子类的参数即可,例如可以使用被访问者基类作为参数类型 反之,如果 Element 的子类经常改变结构,例如需要增加一个新的税种,这就需要在访问者类中增加新的访问方法,因此,在这种情况下使用访问者模式代价较高,尽量不要使用访问者模式。 访问者将相关的方法集中在一个具体的访问者类中,而其他相关的方法集中在另外一个具体的访问者类中。也就是说,访问者子类是按照方法的类型来分类的。

    97910发布于 2019-07-26
  • 来自专栏终有链响

    智能合约中未授权访问

    未授权访问: 如果智能合约对关键函数的访问控制不足,攻击者可能执行不应允许的操作,如修改合约状态或提取资金。 未授权访问示例 假设我们有一个智能合约,用于管理用户的存款和提款。 function deposit() public payable { balances[msg.sender] += msg.value; } // 缺乏访问控制 解决方案 为了解决未授权访问的问题,我们需要在函数前添加访问修饰符,确保只有特定的角色或地址可以调用withdraw函数。这里我们使用一个简单的onlyOwner修饰符来限制对合约所有者的调用。 注意,这种简单的访问控制机制可能不足以应对复杂的场景,你可能需要更复杂的角色和权限系统,比如使用OpenZeppelin的Ownable和AccessControl库来提供更细粒度的访问控制。

    51610编辑于 2024-07-29
  • 来自专栏信数据得永生

    Python 人工智能11~15

    _11.png)] 图 11:带有 AI 机器人需要击中的目标的地图,目标以哈希表示 前面的地图中有 124 个目标。 控制台访问:可以从 AWS 管理控制台访问 Amazon Comprehend 。 将数据提取到服务中的最简单方法之一是使用 Amazon S3。 可以通过三种不同的方式访问该服务,就像可以访问许多 AWS 服务一样: 在 AWS 控制台中,翻译少量文本片段并对该服务进行采样。 AutoML 视频智能和视频智能 API:AutoML 视频智能服务具有一个简单的界面,该界面可以使用自定义模型识别,跟踪和分类视频中的对象。 该服务不需要编程或人工智能方面的广泛背景。 谈到玩具,在下一章中,我们将探讨如何使用人工智能构建游戏,并将我们学到的一些概念加以利用。 13 使用人工智能构建游戏 在本章中,我们将学习如何使用称为组合搜索的人工智能技术来构建游戏。

    2K10编辑于 2023-04-23
  • 来自专栏我的博客

    【C++11智能指针

    智能指针家族包括auto_ptr(C++98)、unique_ptr、shared_ptr和weak_ptr(C++11)等类型。 所有智能指针都支持指针式访问,通过operator*和operator->来访问资源。它们的主要区别在于处理拷贝行为的方式不同,这是选择使用哪种智能指针的关键考量因素。 • unique_ptr是C++11引入的智能指针,其名称意为"唯一指针"。特点是禁止拷贝操作(拷贝构造函数和赋值运算符被删除),仅支持移动语义(通过std::move转移所有权)。 , 9, 11); 运行结果: 4. C++11和boost中智能指针的关系 • Boost库作为C++标准库的重要补充,是一个由全球C++开发者共同维护的开源项目。

    24010编辑于 2025-12-22
  • 来自专栏信数据得永生

    TensorFlow 智能移动项目:11~12

    自 iOS 11 起,Core ML 就可用了,截至 2018 年 5 月,Core ML 已占到 80% 的标记份额。至少了解您可以在 iOS 应用中使用 Core ML 的基本知识绝对有意义。 如果您以前从未听说过或使用过 Raspberry Pi,请访问其网站,然后您很快就会爱上这个很棒的小东西。 交换分区是在单独的 USB 磁盘上创建的,因此首选交换分区,因为交换分区不会碎片化,但 SD 卡上的交换文件很容易碎片化,从而导致访问速度变慢。 请记住,强化学习中的一项策略只是一个函数,该函数以智能体所处的状态为输入,并输出智能体接下来应采取的行动,以实现值最大化或长期回报。 无论如何,这将是一条充满兴奋的绝妙之路,当然还要有艰苦的工作,而您从本书中学到的技能就像您的智能手机一样,随时可以为您服务,并准备好将使您的甜蜜而聪明的小设备变得更加甜蜜和智能

    5.8K10编辑于 2023-04-24
  • 来自专栏给永远比拿愉快

    C++11智能指针

    为了带来指针更好的使用体验,C++中引入了智能指针的概念,其实质就是将指针的一些操作封装成类,程序员通过使用熟悉的指针运算符(-> 和 *)访问封装指针,该指针类通过运算符重载返回封装的原始指针。 C++智能指针是在<memory> 标头文件中的 std 命名空间中定义的。 C++11中主要有两种类型的智能指针: (1) shared_ptr代表的是“共享所有权”(shared ownership)的指针。 foreach是C++11的新特性,貌似Visual Studio2010中是不支持的,但是2013中是支持的: // print all elements for (vector<shared_ptr ,但是需要记住智能指针不能使用delete关键字显示释放空间。

    1K20发布于 2019-01-22
  • 来自专栏基础知识文章

    C++11智能指针

    指针可以解引用,也可以通过->去访问所指空间中的内容,因此:AutoPtr模板类中还得需要将 、->重载下,才可让其像指针一样去使用*。 AutoPtr<Date> copy(ap); ap->_year = 2018; return 0; } 导致访问异常 ? 只声明不实现+声明成私有 UniquePtr(UniquePtr<T> const &); UniquePtr & operator=(UniquePtr<T> const &); // C++11 UniquePtr & operator=(UniquePtr<T> const &) = delete; private: T * _ptr; }; 3.5 std::shared_ptr C++11 智能指针管理的对象存放在堆上,两个线程中同时去访问,会导致线程安全问题。

    72720发布于 2020-08-27
  • 来自专栏从小白开始修炼

    【C++11智能指针

    ,如果进行访问,会导致程序崩溃,很容易出现问题,所以比较少用。 此时管理同一个资源的多个对象访问到的就是同一个引用计数了,管理不同资源的对象访问到的就是不同的引用计数,符合我们的要求。 这里只使用加锁,shared_ptr加锁版本: 在shared_ptr类中新增加互斥锁成员变量,让管理同一个资源的多个线程访问到的是同一个互斥锁,管理不同资源的线程访问到的就是不同的互斥锁,所以互斥锁也在堆区创建 weak_ptr weak_ptr的使用 weak_ptr是C++11中引入的智能指针,weak_ptr不是用来管理资源的释放的,它主要是用来解决shared_ptr的循环引用问题的。 与boost中智能指针的关系 C++11和boost中智能指针的关系 C++98中产生了第一个智能指针auto_ptr。

    46940编辑于 2023-10-15
  • 来自专栏nft市场

    智能合约安全——私有数据访问

    这次我们将了解如何访问合约中的私有数据(private 数据)。 目标合约 话不多说,直接上代码 图片 这次我们的目标合约是部署在 Ropsten 上的一个合约。

    95320编辑于 2022-07-30
  • 来自专栏IT派

    11个Python爱好者最爱访问的站点

    学习一门编程语言,除了语法,最重要的是学习解决问题。很多时候单凭自己的能力确实无法做到完美解决,所以无论是搜索引擎、社区、文档还是博客,都是我们解决问题的利器。

    55820发布于 2018-08-10
  • 来自专栏晓晨的专栏

    IdentityServer(11)- 使用Hybrid Flow并添加API访问控制

    现在我们也想要一个访问令牌。访问令牌比身份令牌更加敏感,如果不需要,我们不想让它们暴露于“外部”世界。 这将用于反向检索通道上的访问令牌。 最后,我们还让客户端访问offline_access作用域 - 这允许为长时间的API访问请求刷新令牌: new Client { ClientId = "mvc", ClientName 使用访问令牌 OpenID Connect中间件会自动为您保存令牌(标识,访问和刷新)。 这就是SaveTokens设置的作用。 技术上,令牌存储在cookie。 >

    refresh token
    @await ViewContext.HttpContext.GetTokenAsync("refresh_token")
    要使用访问令牌访问

    1.6K40发布于 2018-06-22
  • 来自专栏蜉蝣禅修之道

    初探C++11智能指针

    int> p1(new int(10)); auto_ptr<int> p2 = p1; //转移控制权 *p1 += 10; //crash,p1为空指针,可以用p1->get判空做保护 因此在C++11 真正的智能指针:shared_ptr auto_ptr和unique_ptr都有或多或少的缺陷,因此C++11还推出了shared_ptr,这也是目前工程内使用最多最广泛的智能指针,他使用引用计数(感觉有参考 看到这里,智能指针的用法基本介绍完了,后面笔者来粗浅地分析一下为什么智能指针可以有效帮我们管理裸指针的生命周期。 多个线程操作同一个shared_ptr对象 同样的道理,既然C++11只负责sp_counted_base的原子性,那么shared_ptr本身就没有保证线程安全了,加入两个线程同时访问同一个shared_ptr 对象,一个进行释放(reset),另一个读取裸指针的值,那么最后的结果就不确定了,很有可能发生野指针访问crash。

    1.5K30发布于 2019-07-23
  • 来自专栏编程技术专栏

    详解C++11智能指针

    前言 C++里面的四个智能指针: auto_ptr, unique_ptr,shared_ptr, weak_ptr 其中后三个是C++11支持,并且第一个已经被C++11弃用。 C++11智能指针介绍 智能指针主要用于管理在堆上分配的内存,它将普通的指针封装为一个栈对象。当栈对象的生存周期结束后,会在析构函数中释放掉申请的内存,从而防止内存泄漏。 C++ 11中最常用的智能指针类型为shared_ptr,它采用引用计数的方法,记录当前内存资源被多少个智能指针引用。该引用计数的内存在堆上分配。当新增一个时引用计数加1,当过期时引用计数减一。 所以智能指针的作用原理就是在函数结束时自动释放内存空间,不需要手动释放内存空间。 auto_ptr (C++98的方案,C++11已经抛弃)采用所有权模式。 注意:我们不能通过weak_ptr直接访问对象的方法,比如B对象中有一个方法print(),我们不能这样访问,pa->pb_->print(),因为pb_是一个weak_ptr,应该先把它转化为shared_ptr

    2.2K50发布于 2019-09-02
  • 来自专栏腾讯技术工程官方号的专栏

    窥见C++11智能指针

    导语: C++指针的内存管理相信是大部分C++入门程序员的梦魇,受到Boost的启发,C++11标准推出了智能指针,让我们从指针的内存管理中释放出来,几乎消灭所有new和delete。 既然智能指针如此强大,今天我们来一窥智能指针的原理以及在多线程操作中需要注意的细节。 真正的智能指针:shared_ptr auto_ptr和unique_ptr都有或多或少的缺陷,因此C++11还推出了shared_ptr,这也是目前工程内使用最多最广泛的智能指针,他使用引用计数(感觉有参考 多个线程操作同一个shared_ptr对象 同样的道理,既然C++11只负责sp_counted_base的原子性,那么shared_ptr本身就没有保证线程安全了,加入两个线程同时访问同一个shared_ptr 对象,一个进行释放(reset),另一个读取裸指针的值,那么最后的结果就不确定了,很有可能发生野指针访问crash。

    1.6K20发布于 2019-08-13
  • 来自专栏字节脉搏实验室

    智能合约安全审计之路-访问控制漏洞

    的恶意使用(本次案例合约为例) ) ) 作者-毕竟话少 描述:合约没有设置合理的访问控制模型 ,以及没有对合约有效的校验导致访问控制漏洞的发生 核心问题:public的恶意使用(本次案例合约为例) ? 漏洞描述 智能合约的访问控制漏洞主要体现在以下俩个方面: 代码层面可见性 针对函数和变量,限制其所能被修改和调用的作用域 逻辑层面权限约束 通常针对函数,限制某些特权用户访问 代码层面可见性的函数普及: 漏洞预防 设计合理的访问控制模型,并在代码中进行校验 合理使用可见性约束和modifier 使用形式化验证检测智能合约的访问控制漏洞 ?

    1.4K20发布于 2020-03-08
  • 来自专栏Lcry个人博客

    Oracle 11g权限设置IP访问限制利用监听

    出于数据安全考虑,对Oracle数据库的IP做一些限制,只有固定的IP才能访问。 $JAVA_HOME/NETWORK/ADMIN/sqlnet.ora文件,若没有请新建 增加以下内容(#表示注释): #开启ip限制功能 tcp.validnode_checking=yes #允许访问数据库的 IP地址列表,多个IP地址使用逗号分开 tcp.invited_nodes=(192.168.1.110,192.168.2.*) #禁止访问数据库的IP地址列表,多个IP地址使用逗号分开 tcp.excluded_nodes 3、不要禁止服务器本机的IP地址,否则通过lsnrctl将不能启动或停止监听,因为该过程监听程序会通过本机的IP访问监听器。

    1.4K20编辑于 2022-11-29
  • 来自专栏CPP开发前沿

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

    C++11提供了智能指针,使用智能指针后不需要用户自己释放内存空间,一旦使用时对象超出了自己的生命周期,就会进行自动释放,从而有效解决了内存泄露的问题。 ,但是智能指针不需要自己管理内存。 2 独占的智能指针:std::unique_ptr 独占智能指针使用时有限制,如:不允许其它智能指针共享其内部指针;不允许通过赋值将一个独占指针给另外一个独占指针。 代码如下所示: std::unique_ptr<T> p(new T); std::unique_ptr<T> p1 = std::move(p); 在C++ 11中,并没有提供make_unique 有一点需要大家注意的是,智能共享指针可以使用reset函数进行释放。

    97710发布于 2021-11-16
  • 来自专栏cpp加油站

    c++11&14-智能指针专题

    但像java等其他一些语言则不会有这样的问题,为什么呢,因为它们有很好的处理内存的方法,比如java的垃圾回收机制,现在,我们c++终于也有了智能指针。 1. 什么是智能指针 简单地说,智能指针是用对象去管理一个资源指针,同时用一个计数器计算引用当前指针对象的个数,当管理指针的对象增加或减少时,计数器也相应加1或减1,当最后一个指针管理对象销毁时,计数器为1, 下面我们介绍两个常用的智能指针std::shared_ptr和std::weak_ptr。 与std::shared_ptr最大的差别是在赋值的时候,不会引起智能指针计数增加。 智能指针小结 可以看出,智能指针其实是std::shared_ptr和std::unique_ptr, std::shared_ptr可以有多个引用对象,但不能互相引用,而std::unique_ptr

    83040发布于 2021-04-16
领券