参考资料

Go安全指南

  • 在对slice进行操作时,必须判断长度是否合法,防止程序panic
  • 进行指针操作时,必须判断该指针是否为nil,防止程序panic,尤其在进行结构体Unmarshal
  • 在进行make分配内存时,需要对外部可控的长度进行校验,防止程序panic
  • 重复释放一般存在于异常流程判断中,如果恶意攻击者构造出异常条件使程序重复释放channel,则会触发运行时恐慌,从而造成DoS攻击。
  • 启动一个协程就会做一个入栈操作,在系统不退出的情况下,协程也没有设置退出条件,则相当于协程失去了控制,它占用的资源无法回收,可能会导致内存泄露。
  • slice是引用类型,在作为函数入参时采用的是地址传递,对slice的修改也会影响原始数据
  • 在进行文件操作时,如果对外部传入的文件名未做限制,可能导致任意文件读取或者任意文件写入,严重可能导致代码执行
  • 根据创建文件的敏感性设置不同级别的访问权限,以防止敏感数据被任意权限用户读取。例如,设置文件权限为:-rw-r-----

一曲长歌一剑天涯
3 声望3 粉丝