2049bbs 已经修改了程序,不再记录ip

By 小二 at 2019-10-18

虽然我的 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

bbs, 程序, ip


安全性建议:

在多个go文件,及存档的JSON文件中,将struct里面的ClientIp string json:"clientip"删除; 在html文件里将

clientIP: {{.Aobj.ClientIp}}

删除,以防止其他Admin(如果有的话)看到发帖人IP地址。(刚看到这个已经在forked repo删了)

基于开源的建议:

删除原repo的MIT License有违开源精神;

请在forked repo尽量上传修改后源码。

9M135Verona at 2019-10-18
1

@9M135Verona html 文件中的clientIP早已删除了。 https://github.com/Terminus2049/2049BBS/commit/da144257752811c1fc5e312eccaeebc517218bef

LICENSE 已加。

直接删除struct ClientIp string json:"clientip" 会不会影响历史数据的数据库兼容?

小二 at 2019-10-18
2

@榴梿 不排除这个可能,我没花太多时间去读这个源码。 可以不删除历史数据,全部替换成8.8.8.8这样的无意义数据。

我还是比较信任阁下,也没太怕数据泄露的。但是没人保证硬盘不会被偷

9M135Verona at 2019-10-18
3

@9M135Verona 因为goyoubbs用了一种比较小众的基于go的微型数据库,我的go又属于刚开始读懂语法的水平,我都不知道怎么操作那个什么神奇的数据库……那我这段时间再研究下……

小二 at 2019-10-18
4

@9M135Verona https://github.com/boltdb/bolt 这个嵌入式数据库居然已经 Archive 了

小二 at 2019-10-18
5

@榴梿

https://godoc.org/github.com/ego008/youdb 可能有一些能帮助你的信息。

鉴于阁下“不维护主程序”,那我以下以原repo为准: 从article.go#L180到L185(第180到185行)及L601-605的变量名“jb”用法,推测ip以hash保存。 阁下可能需要使用该数据库的Hset()或Hmset()函数。

9M135Verona at 2019-10-18
6

@榴梿 那2049用的应该是没有使用ego008自创数据库的版本,建议参考https://godoc.org/github.com/boltdb/bolt

9M135Verona at 2019-10-18
7

@9M135Verona 之前不维护纯粹因为懒……现在不得不维护了。

小二 at 2019-10-18
8