2049bbs 已经修改了程序,不再记录ip
虽然我的 go 也是只有勉强看懂语法的水平,不过这个比较好改,一下子就改好了。
其实只要把这两个地方的 r.Header.Get("X-FORWARDED-FOR")
改为 ""
就好了。
https://github.com/ego008/goyoubbs/blob/e02243676e05d591a6434d992586884de540303d/controller/article.go#L180
https://github.com/ego008/goyoubbs/blob/e02243676e05d591a6434d992586884de540303d/controller/article.go#L601
安全性建议:
在多个go文件,及存档的JSON文件中,将struct里面的ClientIp string json:"clientip"
删除; 在html文件里将
clientIP: {{.Aobj.ClientIp}}
删除,以防止其他Admin(如果有的话)看到发帖人IP地址。(刚看到这个已经在forked repo删了)
基于开源的建议:
删除原repo的MIT License有违开源精神;
请在forked repo尽量上传修改后源码。
@9M135Verona html 文件中的clientIP早已删除了。 https://github.com/Terminus2049/2049BBS/commit/da144257752811c1fc5e312eccaeebc517218bef
LICENSE 已加。
直接删除struct ClientIp string json:"clientip"
会不会影响历史数据的数据库兼容?
@榴梿 不排除这个可能,我没花太多时间去读这个源码。 可以不删除历史数据,全部替换成8.8.8.8这样的无意义数据。
我还是比较信任阁下,也没太怕数据泄露的。但是没人保证硬盘不会被偷
@9M135Verona 因为goyoubbs用了一种比较小众的基于go的微型数据库,我的go又属于刚开始读懂语法的水平,我都不知道怎么操作那个什么神奇的数据库……那我这段时间再研究下……
@9M135Verona https://github.com/boltdb/bolt 这个嵌入式数据库居然已经 Archive 了
@榴梿
https://godoc.org/github.com/ego008/youdb 可能有一些能帮助你的信息。
鉴于阁下“不维护主程序”,那我以下以原repo为准: 从article.go#L180到L185(第180到185行)及L601-605的变量名“jb”用法,推测ip以hash保存。 阁下可能需要使用该数据库的Hset()或Hmset()函数。
@榴梿 那2049用的应该是没有使用ego008自创数据库的版本,建议参考https://godoc.org/github.com/boltdb/bolt
@9M135Verona 之前不维护纯粹因为懒……现在不得不维护了。