「Go工具箱」go语言csrf库的使用方式和实现原理

> 上帝只垂青主动的人 --- 吴军 《格局》 大家好,我是渔夫子。本号新推出「Go工具箱」系列,意在给大家分享使用go语言编写的、实用的、好玩的工具。 今天给大家推荐的是web应用安全防护方面的一个包:csrf。该包为Go web应用中常见的跨站请求伪造(CSRF)攻击提供预防功能。 ## csrf小档案 | **csrf小档案** | | | | | --- | --- | --- | --- | | star | 837 | used by | - ...阅读全文

Go语言中文网 2022-10-28 08:43:23 yudotyang

panic: runtime error: invalid memory address or nil pointer dereference | 关于nil 无效的指针引用的问题

**今天我们说一个nil无效指针引用报错的问题** 🐒 , 错误抛出了 , 但是具体出错逻辑还是要具体分析一下, 涉及到的知识点涵盖了go基本的语法, 函数, 以及linux的文件知识, 超出code范围的内容不在讨论范围 下方code是一段通过切片完成输入缓冲的文件I/O函数 但是当你做出一些I ->O之间的额外修改可能会崩掉, 也许你可能换一种写法, 但是学习嘛, 不寒碜 ``` func SliceRead(f *os.File) { // 缓冲区大...阅读全文

Go语言中文网 2022-10-27 17:54:09 cheney2022

EasyMABuilder:让企业拥有更快的自我开发能力

​早前,国际权威IT研究与顾问咨询机构Gartner发布了《2022新兴技术和趋势影响雷达图》报告,围绕关键推动技术、智能世界、无处不在且透明的安全性和生产力革命四大主题,对23种最具颠覆性和市场变革的新兴趋势和技术进行了评估。从图中可看出,LCAP(Low Code Application Platform,低代码开发平台)处于雷达图核心位置,成为关键推动技术主题中,在技术成熟度、质量、产品和市场影响力方面皆为处于领先地位的新兴趋势和技术。​△ Gartner2022新兴技术和趋势影响雷达图G...阅读全文

Go语言中文网 2022-10-27 17:51:41 EASYOPS_youwei

彻底理解闭包实现原理

![](https://tva1.sinaimg.cn/large/008vxvgGly1h7fiwryyq4j30zk0k03zp.jpg) # 前言 闭包对于一个长期写 `Java` 的开发者来说估计鲜有耳闻,我在写 `Python` 和 `Go` 之前也是没怎么了解,光这名字感觉就有点"神秘莫测",这篇文章的主要目的就是从编译器的角度来分析闭包,彻底搞懂闭包的实现原理。 # 函数一等公民 一门语言在实现闭包之前首先要具有的特性就是:`First class func...阅读全文

Go语言中文网 2022-10-26 07:42:17 crossoverJie

优维低代码:Permissions 权限校验

​​优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。连载第二十五期《高级指引:Permissions权限校验》▽有时候我们需要在编排中针对用户拥有的权限来确定显示的内容、按钮的启用或禁用等,现在已支持在求值表达式中编写 <% PERMISSIONS.check("your:action-x") %> 来获取当前用户是否拥有指定的权限,可以传递多...阅读全文

Go语言中文网 2022-10-24 17:40:50 EASYOPS_youwei

Go语言三十讲【目录】

## 第一章 Go语言快速入门 ### &emsp;&emsp;[第一讲 基本语法](https://studygolang.com/articles/35856) ### &emsp;&emsp;[第二讲 数组与切片](https://studygolang.com/articles/35861) ### &emsp;&emsp;[第三讲 字符串](https://studygolang.com/articles/35865) ### &emsp;&emsp;[第四讲 哈希表MAP...阅读全文

Go语言中文网 2022-10-24 11:03:30 tomato01

【5-6 Golang】实战—平滑升级

&emsp;&emsp;Go服务作为常驻进程,想升级怎么办?你是不是想说这还不简单,先杀掉老的服务,再启动新的服务不就完了。可是你有没有想过,在你杀掉老服务的时候,正在处理的请求怎么办?以及老服务退出新服务启动的过程中,客户端请求到达了怎么办?这一简单粗暴的操作,必然会引起瞬时的请求异常。那怎么办,想办法平滑升级呗。 ## 信号 &emsp;&emsp;为什么要先介绍信号呢?因为当我们需要让进程退出的时候,通常就是给进程发送一个退出信号,比如ctrl+C组合其实就是给进程发送了SIG...阅读全文

Go语言中文网 2022-10-24 10:43:52 tomato01

【5-5 Golang】实战—Go微服务发现问题分析

## 问题引入 &emsp;&emsp;某个夜黑风高的晚上,突然接收到少量错误日志报警『failed to dial server: dial tcp xxxx:yy: i/o timeout』。原来是微服务客户端请求服务端,连接失败。 &emsp;&emsp;简单介绍下服务现状:我们的服务部署在k8s环境,微服务框架我们使用的是smallnest/rpcx,注册中心基于zookeeper,链路如下图所示: ![5-5-1.png](https://static.golangj...阅读全文

Go语言中文网 2022-10-24 10:13:38 tomato01

【5-4 Golang】实战—Go服务502总结

## 问题引入 &emsp;&emsp;生产环境Golang服务有时会产生502报警,排查发现大多是以下三种原因造成的: - http.Server配置了WriteTimeout,请求处理超时,Golang服务断开连接; - http.Server配置了IdleTimeout,且网关和Golang之间使用长连接,Golang服务主动断开连接; - Golang服务处理HTTP请求时出现了panic。 &emsp;&emsp;本篇文章主要介绍这三种502产生的具体原因,另外本篇文...阅读全文

Go语言中文网 2022-10-24 10:10:41 tomato01

【5-3 Golang】实战—HTTP服务假死问题分析

## 问题描述 &emsp;&emsp;下午15点左右,QA反馈灰度环境大量请求超时。kibana查询灰度网关日志,确实存在部分请求响应时间超过60秒,HTTP状态码504。进一步分析日志,所有504请求的上游地址都是xxxx:80。 &emsp;&emsp;目前该服务部署了两套环境,k8s + kvm,k8s环境上游ingress(即Nginx)端口80,kvm环境上游Golang服务端口19001。是单单k8s环境服务有问题吗? &emsp;&emsp;登录到k8s服务终端...阅读全文

Go语言中文网 2022-10-24 10:09:22 tomato01

InfluxDB Cluster - InfluxDB Enterprise 集群的开源替代方案

# InfluxDB Cluster - InfluxDB Enterprise 集群的开源替代方案 InfluxDB Cluster - 一个开源分布式时间序列数据库,InfluxDB Enterprise 集群的开源替代方案 - GitHub:[chengshiwen/influxdb-cluster](https://github.com/chengshiwen/influxdb-cluster) - Wiki 文档:[chengshiwen/influxdb-cluster...阅读全文

Go语言中文网 2022-10-22 15:26:10 qixiaozai

UGeek大咖说 | 云原生下的数字化实时监控体系建设

​​多年来,云原生和微服务架构的发展推动着企业数字化转型快速落地,不仅重塑了企业IT系统架构,也改变了应用的研发和运维体系。与此同时,随着不断加深的技术栈和越来越复杂的架构,使企业IT故障不可预知、难以定位,云原生业务变得脆弱,传统的灾备方案、监控技术等已无法满足云原生场景下的业务运维需求......10月25日晚8点,「UGeek大咖说-大厂可观测」第10期,邀请中国联通软件研究院产品线负责人曹家豪做客直播间,为大家带来《云原生下的数字化实时监控体系建设》的分享,帮助企业走上更顺畅的云原生之旅...阅读全文

Go语言中文网 2022-10-21 10:53:31 EASYOPS_youwei

【5-2 Golang】实战—dlv调试

&emsp;&emsp;Go程序出异常怎么办?pprof工具分析啊,可是如果是代码方面bug等呢?分析代码bug有时需要结合执行过程,加日志呗,可是某些异常问题服务重启之后,可能会很难复现。这时候我们可以断点调试,这样就能分析每一行代码的执行,每一个变量的结果,C语言通常使用GDB调试,Go语言有专门的调试工具dlv,本篇文章主要介绍dlv的基本使用。 ## dlv 概述 &emsp;&emsp;dlv全称delve,安装也比较简单,go install就能安装: ``` /...阅读全文

Go语言中文网 2022-10-21 09:44:38 tomato01

10月更新!又一波新功能上线,升级后的EasyOps®简直神了

​又到了每月产品盘点的时刻,回顾9月,又是满满的收获!11项新功能的上线和升级优化,在不断的技术创新和产品的快速迭代过程中,进一步提升企业运维效能。下面,让我们看看9月优维EasyOps®全平台产品又带来了哪些新能力吧!HyperInsight 超融合监控APM支持无侵入式接入K8S服务数据APM数据接入方式的丰富在数据接入方式上,APM原来仅支持Skywalking、Jaeger、Zipkin三种客户端的接入。由于这三种接入方式属于有侵入式接入数据,因而在新增一些服务或者监听更多数据时,需要去...阅读全文

Go语言中文网 2022-10-20 17:58:05 EASYOPS_youwei

【5-1 Golang】实战—Go程序分析利器pprof

&emsp;&emsp;不知道你有没有遇到这种情况,Go服务总是是不是的响应非常慢排查发现所有的依赖还都挺快,感觉是Go服务自身慢又不知道怎么慢在哪里;或者说请求甚至完全没响应,Go服务明明在正常运行,请求去哪儿了呢?或者说Go服务内存占用总是居高不下,内存都浪费在哪呢?这些问题都可以通过pprof分析,本篇文章将为你演示如何基于pprof分析程序性能(问题)。 ## pprof概述 &emsp;&emsp;为什么pprof可以帮助我们分析Go程序性能呢?因为它可以采集程序运行时数据...阅读全文

Go语言中文网 2022-10-20 09:43:18 tomato01

【4-4 Golang】常用标准库—单元测试

&emsp;&emsp;日常项目开发中,单元测试是必不可少的,Go语言本身就提供了单元测试标准库,很方便我们开展基础测试,性能测试,事例测试,模糊测试以及分析代码覆盖率,本篇文章主要介绍Go单元测试的基本操作。 ## 单元测试概述 &emsp;&emsp;"Go test" 命令可用于运行指定路径下的Go文件,这些Go文件必须以 "x_test.go" 格式命名,并且测试函数也必须以一定格式命名。"Go test" 命令编译相关Go文件,并运行对应的测试函数,最终输出测试结果,包括测...阅读全文

Go语言中文网 2022-10-19 09:38:40 tomato01

优维低代码:Template State 模板状态数据

​​优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。连载第二十四期《高级指引:Template State 模板状态数据》▽有时候我们希望在模板内进行消费类似 Context 上下文的数据,但又希望这些数据能控制在模板实例的作用域下:数据封装在模板内部、外部不可访问,同时一个模板的多个实例之间的数据互不影响。Template State 模板状...阅读全文

Go语言中文网 2022-10-18 17:35:51 EASYOPS_youwei

招聘-北京-Golang开发Leader

鳄梨科技公司创立于2019年8月,是一家致力改变传统大规模用人机构招聘及面试流程的人工智能企业,针对用人机构招聘及面试难点提出解决方案,用科技解决重复工作,用数据驱动人力决策,用AI帮助提高大规模岗位的人力资源质量,从而提高企业价值。核心产品服务模块包括方便面AI面试系统、方便面智能招聘管理系统、方便面职播,三款产品之间相互打通,实现了招聘管理业务全流程的一键衔接。19年成立发展至今,已获得来自红杉/金沙江/红点/顺为等顶级投资机构的数千万美元的融资,创始团队均来自于硅谷及BAT等,目前团队规模...阅读全文

Go语言中文网 2022-10-18 15:04:31 Elihr

【4-3 Golang】常用标准库—上下文context

&emsp;&emsp;Context顾名思义上下文,可用于在整个请求上下文传值以及控制超时,本篇文章主要介绍Context的设计思路,以及基本使用方式。 ## Context 使用方式 &emsp;&emsp;设想有一个Go HTTP服务,在请求的整个处理链路,可能随时需要获取一些公共数据,如用户ID等,怎么办呢?通过参数呗,每个函数的第一个输入参数都是用户ID不就行了,如果再加一个公共数据呢?再加一个参数吗?如果将所有这些公共参数封装成一个结构体呢?这样貌似也可以。 &em...阅读全文

Go语言中文网 2022-10-18 09:40:45 tomato01

Hyperlnsight:监控产品中的“超能力战神”

​当你去排队核酸检测,在验证身份证环节遇到系统奔溃,不得不继续等待......当你在金融交易应用上,操作一笔重要交易,如若因为交易故障,无法按时完成交易,将对自己带来巨大影响,狠狠吐槽金融企业的能力。随着互联网服务深入千行百业,数字化应用成为企业和机构为用户提供服务的重要形式。如何降低应用的故障率;如何快速定位故障;如何保障系统稳定性和连续性,提高用户体验?这些都是IT运维目前面临的问题和痛点。因此亟需一款能力全面的IT运维监控平台,助力应对数字化转型中产生的海量、复杂的运维难题。在此背景下,优...阅读全文

Go语言中文网 2022-10-17 17:45:28 EASYOPS_youwei