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

    智能合约:访问控制缺陷

    访问控制缺陷是因为编写 solidity 智能合约的时候,对于某些判断的定义不严谨或者笔误,导致的某些敏感功能的访问验证被绕过问题。 攻击者可以恶意使用某些敏感功能 漏洞分析 [38hd8nikac.png] 先看一段代码片段 //函数修改器用于检验是否允许转移Token modifier isTokenTransfer{ //if = 的条件判断下来的话就是 如果调用者不是合约本身反而是通过的了 代码调试 [38hd8nikac.png] https://cn.etherscan.com/address/0xb5a5f22694352c15b00323844ad545abb2b11028 = 应该是 == 的,这样结果反而是除合约所有者之外的所有人都可以更改了,实际上韩国有个区块链项目 ICON(ICX) 的智能合约就出现过这个问题 漏洞防范 [38hd8nikac.png] 必须对由于表征权限的变量和表示进行严格的控制

    64641发布于 2020-05-18
  • 来自专栏终有链响

    智能合约中未授权访问

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

    51610编辑于 2024-07-29
  • 来自专栏谢公子学安全

    K8s API访问控制

    认证Authentication 在认证方面,K8s提供了如下的认证方式: HTTPS证书认证: 基于CA根证书签名的双向数字认证方式,比如k8s运维人员通过kubectl访问API Server 但是K8s并没有相应的资源对象或者API来支持常规的个人用户。拥有K8s集群的CA证书签名的有效证书,个人用户就可以访问K8s集群了。 · RBAC(Role-Based Access Control):基于角色的访问控制,它是目前K8s默认的授权策略。 2 Node授权 Node授权策略用于对kubelet发出的请求进行访问控制,与用户的应用授权无关,属于K8s自身安全的增强功能。 在K8s 1.7中,由于Node授权器实现了相同的目的,因此不再支持system:nodes组与system:node角色的自动绑定,从而有利于对secret 和configmap访问的附加限制。

    2.8K30编辑于 2023-02-27
  • 来自专栏痴者工良

    浅入Kubernetes(8):外网访问集群

    本篇的内容主要是介绍如何配置网络,使得能够在外部网络访问集群。 Service,读者可以查看官方文档的资料:https://kubernetes.io/zh/docs/concepts/services-networking/service/ Service 是 k8s 在 k8s 中,每个 pod 都有自己的 ip 地址,而且 Service 可以为一组 pod 提供相同的 DNS ,使得多个 pod 之间可以相互通讯,k8s 可以在这些 pod 之间进行负载均衡。 Service 外部服务类型 k8s 中可以将一个 Service 暴露到集群外部,外界可以通过 ip 访问这个 Service。 这时已经可以直接通过外网访问 Service 中的服务了。

    3.3K41发布于 2021-04-26
  • 来自专栏匿名用户的日记

    k8s 跨 namespace 访问服务

    在K8S中,同一个命名空间(namespace)下的服务之间调用,之间通过服务名(service name)调用即可。 遇到这种情况,我们就需要跨命名空间访问,K8S 对service 提供了四种不同的类型,针对这个问题我们选用 ExternalName 类型的 service 即可。 k8s service 分为四种类型 分别为: ClusterIp(默认类型,每个Node分配一个集群内部的Ip,内部可以互相访问,外部无法访问集群内部) NodePort(基于ClusterIp,另外在每个 Node上开放一个端口,可以从所有的位置访问这个地址) LoadBalance(基于NodePort,并且有云服务商在外部创建了一个负载均衡层,将流量导入到对应Port。 {NAMESPACE_NAME}.svc.cluster.local这样的格式,访问目标 namespace 下的服务。

    2.7K20编辑于 2021-12-14
  • 来自专栏devops_k8s

    k8s service不能访问排错

    如果您已经运行了 Deployment 并创建了一个 Service,但是当您尝试访问它时没有得到响应,希望这份文档能帮助您找出问题所在。 ​ Service工作逻辑 为了完成本次演练的目的,我们先运行几个 Pod $ kubectl run hostnames --image=k8s.gcr.io/serve_hostname \ 这是一个有时会被遗忘的步骤,也是第一件要检查的事情; 那么,如果我试图访问一个不存在的 Service,会发生什么呢? : "default", "selfLink": "/api/v1/namespaces/default/services/hostnames", "uid": "428c8b6c 访问日志取决于您的 Node 操作系统。在某些操作系统是一个文件,如 /var/log/messages kube-proxy.log,而其他操作系统使用 journalctl 访问日志。

    2.6K60编辑于 2022-05-09
  • 来自专栏容器计算

    Spark on K8S 访问 Kerberized HDFS

    Share,来尝试搭建一套做大数据计算时候经常碰到的一种场景: K8S 化的 Spark Job 和 HDFS 交互。 Share 中有作者分享的几个 github 地址,非常有用,分别是本地部署一个 Kerberized HDFS,以及部署 Spark Pi 作业,当然了 Keytab 是在 HDFS 上的,因此需要访问到 可以看到 K8S 集群的一些信息,这里最主要是要记得 master 的地址。然后顺便安装换一下 K8S dashboard。 ? 访问 HDFS 的集群的机器都需要一个叫做 Keytab 的一个东西,也就是说,Spark Job 需要传入 Keytab 才可以读写 HDFS。 Spark on K8S 访问上,其实没太多的 trick,都集中在 Kerberos 认证的问题上,往往是 token 过期,造成无法访问,至于 long-running 还是 short-running

    2.3K31发布于 2020-08-06
  • 来自专栏devops_k8s

    k8s service不能访问排错

    如果您已经运行了 Deployment 并创建了一个 Service,但是当您尝试访问它时没有得到响应,希望这份文档能帮助您找出问题所在。 Service工作逻辑 image.png 为了完成本次演练的目的,我们先运行几个 Pod $ kubectl run hostnames --image=k8s.gcr.io/serve_hostname 这是一个有时会被遗忘的步骤,也是第一件要检查的事情; 那么,如果我试图访问一个不存在的 Service,会发生什么呢? "default", "selfLink": "/api/v1/namespaces/default/services/hostnames", "uid": "428c8b6c 访问日志取决于您的 Node 操作系统。在某些操作系统是一个文件,如 /var/log/messages kube-proxy.log,而其他操作系统使用 journalctl 访问日志。

    1.8K40发布于 2021-06-22
  • 来自专栏nft市场

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

    这次我们将了解如何访问合约中的私有数据(private 数据)。 目标合约 话不多说,直接上代码 图片 这次我们的目标合约是部署在 Ropsten 上的一个合约。 =123 ,下面我们继续: slot1 中存储三个变量:u16, isTrue, owner 图片 运行结果: 图片 从右往左依次为 owner = f36467c4e023c355026066b8dc51456e7b791d99

    95320编辑于 2022-07-30
  • 来自专栏Java修行之道

    tomcat8 manager页面限制IP访问

    tomcat8 manager页面限制IP访问 配置tomcat8/webapps/manager/META-INF/context.xml <Context antiResourceLocking="

    2.4K10发布于 2019-02-25
  • 来自专栏golang云原生new

    k8s如何访问 pod 元数据

    如何访问 pod 元数据 我们在 pod 中运行容器的时候,是否也会有想要获取当前 pod 的环境信息呢? 咱们写的 yaml 清单写的很简单,实际上部署之后, k8s 会给我们补充在 yaml 清单中没有写的字段,那么我们的 pod 环境信息和容器的元数据如何传递到容器中呢? 是不是也是通过获取这些 k8s 默认给我填写的字段呢? 环境中查看一下 kubernetes 服务的 ip ,我们可以这样来访问 在容器中访问 kubernetes 这是因为没有证书,我们需要导入证书和 token , 这样才能正确的访问到 ApiServer 之前我们查看过默认的 k8s 挂载的位置,/var/run/secrets/kubernetes.io/serviceaccount 这里面有 命名空间,证书,token 这个时候,我们访问 k8s

    63340编辑于 2023-09-01
  • 来自专栏邢成的架构笔记

    Java8并行http请求加快访问速度

    而在这时它们会访问同一个队列,所以为了减少窃取任务线程和被窃取任务线程之间的竞争,通常会使用双端队列,被窃取任务线程永远从双端队列的头部拿任务执行,而窃取任务的线程永远从双端队列的尾部拿任务执行。 用看forkjion的眼光来看ParallelStreams 上文中已经提到了在Java 8引入了自动并行化的概念。 自动并行化也被运用在Java 8新添加的Stream API中。 对于列表中的元素的操作都会以并行的方式执行。 可能有很多朋友在jdk7用future配合countDownLatch自己实现的这个功能,但是jdk8的朋友基本都会用上面的实现方式,那么自信深究一下究竟自己用future实现的这个功能和利用jdk8的 正如我们上面那个列子的情况分析得知,lambda的执行并不是瞬间完成的,所有使用parallel streams的程序都有可能成为阻塞程序的源头,并且在执行过程中程序中的其他部分将无法访问这些workers

    1.2K10编辑于 2022-01-04
  • 来自专栏云原生系列

    k8s的YAML与集群访问

    集群内访问apiVersion: v1kind: Servicemetadata: name: test-k8sspec: selector: app: test-k8s type: ClusterIP 服务的默认类型是 ClusterIP ,只能在集群内部访问,我们可以进入到 Pod 里面访问: kubectl exec -it pod-name -- bash curl http://test-k8s :8080如果要在集群外部访问,可以通过端口转发实现(只适合临时测试用): kubectl port-forward service/test-k8s 8888:80802. 集群外访问apiVersion: v1kind: Servicemetadata: name: test-k8sspec: selector: app: test-k8s # 默认 ClusterIP 集群内可访问,NodePort 节点可访问,LoadBalancer 负载均衡模式(需要负载均衡器才可用) type: NodePort ports: - port: 8080

    92031编辑于 2022-10-12
  • 来自专栏运维开发故事

    【K8S专栏】Kubernetes应用访问管理

    在Kubernetes中,提供了Service和Ingress两种对象来实现应用间访问或外部对集群应用访问,这两种对象在实际的工作中会时长使用,非常重要的对象。 通过地址重写,我们可以实现诸如访问a.com/foo 重写到a.com,访问a.com/foo重写到a.com/foo/bar,需要注意的是重写后的地址需要是能真实访问到资源的地址,不然重写也没什么意义 如果我们把地址配置成可以访问的IP,则可以访问。 有时候访问量太大,可以通过在ingress进行限速,配置如下: apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: nginx-limit Ingress进行访问

    2.1K10编辑于 2022-12-06
  • 来自专栏IT云清

    Docker---(8)Docker启动Redis后访问不了

    Docker启动Redis容器,步骤很简单,和启动mysql容器是一样的:Docker启动mysql。不过有个点需要注意,这里提醒一下:

    7.1K20发布于 2019-01-22
  • 来自专栏字节脉搏实验室

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

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

    1.4K20发布于 2020-03-08
  • 来自专栏全栈程序员必看

    k8s安装、访问kubernetes-dashboard监控

    kubernetes/monitoring/new/kube-dashboard-v2.0.yaml 启动 kubectl proxy 显示:Starting to serve on 127.0.0.1:8001 访问 证书生成两种方式 x509证书crt文件的创建办法 截取k8s的证书 mkdir certs & certs/ grep 'client-certificate-data' ~/.kube/config

    1.1K20发布于 2021-05-19
  • 来自专栏邢成的架构笔记

    Java8并行http请求加快访问速度 原

    而在这时它们会访问同一个队列,所以为了减少窃取任务线程和被窃取任务线程之间的竞争,通常会使用双端队列,被窃取任务线程永远从双端队列的头部拿任务执行,而窃取任务的线程永远从双端队列的尾部拿任务执行。 用看forkjion的眼光来看ParallelStreams 上文中已经提到了在Java 8引入了自动并行化的概念。 自动并行化也被运用在Java 8新添加的Stream API中。 对于列表中的元素的操作都会以并行的方式执行。 可能有很多朋友在jdk7用future配合countDownLatch自己实现的这个功能,但是jdk8的朋友基本都会用上面的实现方式,那么自信深究一下究竟自己用future实现的这个功能和利用jdk8的 正如我们上面那个列子的情况分析得知,lambda的执行并不是瞬间完成的,所有使用parallel streams的程序都有可能成为阻塞程序的源头,并且在执行过程中程序中的其他部分将无法访问这些workers

    2.9K20发布于 2019-04-03
  • 来自专栏实战docker

    K8S环境快速部署Kafka(K8S外部可访问)

    找到configurationOverrides,下图两个黄框中的内容原本是注释的,请删除注释符号,另外,如果您之前设置过跨网络访问kafka,就能理解下面写入K8S宿主机IP的原因了: ? 查看服务:kubectl get services -n kafka-test,如下图红框所示,通过宿主机IP:31090、宿主机IP:31091、宿主机IP:31092即可从外部访问kafka: zookeeper release: kafka 执行命令:kubectl apply -f zookeeper-nodeport-svc.yaml 查看服务,发现已经可以通过宿主机IP:32181访问 验证kafka服务 找一台电脑安装kafka包,就能通过里面自带的命令远程连接和操作K8S的kafka了: 访问kafka官网:http://kafka.apache.org/downloads ,刚才确定了 8. 再打开一个窗口,执行命令查看消费者group: .

    6.4K21发布于 2020-05-26
  • 来自专栏写代码和思考

    Redis 学习笔记8 - 使用 go-redis 访问 redis

    个人更建议 使用 redigo库 来操作redis数据,参考我的另一篇文章使用 redigo 访问 redis。

    11.2K10发布于 2020-04-02
领券