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