Chanzhaoyu / chatgpt-web

用 Express 和 Vue3 搭建的 ChatGPT 演示网页
MIT License
31.55k stars 11.21k forks source link

在使用中API被盗用了,前来求大神破案 #1541

Closed ghost closed 1 year ago

ghost commented 1 year ago

[之前通过油管的一个博主知道这个项目,然后用一台VPS安装后可以使用,突然有一天收到openai官网的邮件,提示我费用到了报警的阈值,而我平时基本不太使用,怎么可能,去了一查,果然有一个key一天24小时在不断的调用API,我一共有三个KEY,查了一下把这个VPS重新恢复默认了,结果调用的数量马上就下来了。 屏幕截图 2023-04-20 185304

整个安装就是用了几行代码,完全按照博主的操作,安装后也没有再安装任何其他应用,我也敢保证这个VPS安装后没有泄露给任何人,可是我不懂编程,我想一定有后门偷取了我的key,好在我有预防并设置了报警和上限,虽然钱不多,但是这种行为太恶劣了。

希望有懂得人看一看,是否是我猜测的这样,不想武断任何原因,只是陈述这样一个事实,给大家提个醒吧。]

LuckyWang6 commented 1 year ago

放在公网的吗,设置访问密码吗,改端口了吗

shuaiplus commented 1 year ago

算了,懒得说了

huangwb8 commented 1 year ago

@ruobing-zhu

从你所透露的信息, 并没有包含提示该项目存在盗用API行为的直接或间接证据。

导致API泄露的因素有很多。比如,你的VPS是否安全?你的VPS网络环境是否安全? 你连接VPS的本地网络环境是否安全,特别是你的节点? 你是否使用了某个第三方的fork版本?

存在这些疑问,是因为我用的是这个项目的衍生项目Kerwin1202/chatgpt-web。 该衍生项目使用了MongoDB托管聊天数据,该数据不可以直接在GUI里删除,只能由管理员(我)在数据库里删除,因而可以追溯历史聊天记录。

在后台,并未发现未知的聊天记录;也没有发现异常扣费行为。

ghost commented 1 year ago

抱歉啊,我是一个纯技术小白,而且是第一次在这里发帖,只是想把遇到的情况放在这里,也许能给别人提个醒,没有任何其他的目的,这个应用是在油管的零度博客上看到的,代码安装也都是按照播主提供的内容操作的,有设密码,但是端口应该没有改,VPS的IP地址和节点信息也一定没有暴露在公网,没有分享过任何人,所以我想不出有什么地方泄露了API,但是可以一起讨论求证,为什么有些人却像条狗一样,上来就咬,就不能心平气和的说话吗,就那么喜欢撕逼吗?我再愚昧我也打算做个人,也不想做一只自认为很聪明的狗。

微信图片_20230420194645
ghost commented 1 year ago

这只狗自己都叫着说第三个了,难道就不能考虑一下,程序本身有没有问题这种可能呢?如果根本没有考虑,只能说明你是一只笨狗,如果你考虑了,明知道哪里有问题还这么叫,那一定是一只坏狗。

Sen-CaPoo commented 1 year ago

这只狗自己都叫着说第三个了,难道就不能考虑一下,程序本身有没有问题这种可能呢?如果根本没有考虑,只能说明你是一只笨狗,如果你考虑了,明知道哪里有问题还这么叫,那一定是一只坏狗。

技術小白沒有錯,也不是別人想咬你,而是你看看你文章標題[这个程序会偷偷盗用API大家小心],你在沒有技術背景以及舉證的情況,就直接說這程序會盜用 API,這也不能怪別人。

我相信這邊大家都是可以接受討論的,但是用詞用字上,還是需要多加注意。

這邊的項目都是[開源],可能小白不懂,我這邊說明一下,開源就是所有程式的原始碼都公開,在你安裝上線前,你都有辦法透過自己的技術進行查看甚至修改,簡單說就是只要具備技術能力,你就能查證這項目是否有危險,他是透明的。

而你說的[能不能考慮一下程序本身有沒有問題],這句話也不實在,如同我上面所說,原始碼都是公開的,這項目也不是一天兩天的東西,早早就一堆大神檢視過,並且也許多大神提醒過,程序本上沒問題,但是部屬環境以及你的網路等等都有可能導致 API KEY 外洩,這部分不是這個程序能幫你保護的。

shuaiplus commented 1 year ago

别人辛辛苦苦写出来的程序你一上来一点没研究就说:这个程序会偷偷盗用API大家小心。不知道谁才是愚昧。

shuaiplus commented 1 year ago

把我心里话说出来了,我嘴笨不会表达

ghost commented 1 year ago

请问,你怎么知道我没有设置密码呢?

2023年4月20日 19:58,Jonas_L @.***> 写道:

自己不懂,就别来瞎说,放公网自己不设密码还在这妖言惑众

— Reply to this email directly, view it on GitHubhttps://github.com/Chanzhaoyu/chatgpt-web/issues/1541#issuecomment-1516202720, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5Z6PYBDCPTWK5JREBANYZTXCEQF3ANCNFSM6AAAAAAXFKPEO4. You are receiving this because you were mentioned.Message ID: @.***>

shuaiplus commented 1 year ago

请问,你怎么知道我没有设置密码呢? 2023年4月20日 19:58,Jonas_L @.> 写道: 自己不懂,就别来瞎说,放公网自己不设密码还在这妖言惑众 — Reply to this email directly, view it on GitHub<#1541 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5Z6PYBDCPTWK5JREBANYZTXCEQF3ANCNFSM6AAAAAAXFKPEO4. You are receiving this because you were mentioned.Message ID: @.>

管你设没设置密码,api偷跑的主要两个原因是没设置密码和没改端口。都不用猜,肯定是其中一个你没弄

ghost commented 1 year ago

这只狗自己都叫着说第三个了,难道就不能考虑一下,程序本身有没有问题这种可能呢?如果根本没有考虑,只能说明你是一只笨狗,如果你考虑了,明知道哪里有问题还这么叫,那一定是一只坏狗。

技術小白沒有錯,也不是別人想咬你,而是你看看你文章標題[这个程序会偷偷盗用API大家小心],你在沒有技術背景以及舉證的情況,就直接說這程序會盜用 API,這也不能怪別人。

我相信這邊大家都是可以接受討論的,但是用詞用字上,還是需要多加注意。

這邊的項目都是[開源],可能小白不懂,我這邊說明一下,開源就是所有程式的原始碼都公開,在你安裝上線前,你都有辦法透過自己的技術進行查看甚至修改,簡單說就是只要具備技術能力,你就能查證這項目是否有危險,他是透明的。

而你說的[能不能考慮一下程序本身有沒有問題],這句話也不實在,如同我上面所說,原始碼都是公開的,這項目也不是一天兩天的東西,早早就一堆大神檢視過,並且也許多大神提醒過,程序本上沒問題,但是部屬環境以及你的網路等等都有可能導致 API KEY 外洩,這部分不是這個程序能幫你保護的。

我喜欢和你这样人对话,你说的一点不错,我接受你的批评,确实也没怎么考虑就随手写了这么一个标题,这个确实有问题,放到这里也是想看看,是否有大神能检视一下代码,我其实无所谓的,几十块钱的损失而已,而且我确定没有任何泄露,因为只是我私人用的一个VPS,经常重装系统,只有我自己在用,从来没有分享过的。

ghost commented 1 year ago

你接受个沟把,傻狗

你能不能做个人啊

ghost commented 1 year ago

人开发者多少天的劳动成果,开源出来给大家用,你在这狗叫,傻狗

我同意你的说法,谁编程开发都会付出很多心血,但是既然开源,就是放到这里接受所有人的检阅,我只是陈述下我的问题,你难道除了嚎叫,就不会正常一点的讨论问题吗?

ghost commented 1 year ago

请问,你怎么知道我没有设置密码呢? 2023年4月20日 19:58,JonasL @.> 写道: 自己不懂,就别来瞎说,放公网自己不设密码还在这妖言惑众 — Reply to this email directly, view it on GitHub<#1541 (comment)>, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A5Z6PYBDCPTWK5JREBANYZTXCEQF3ANCNFSM6AAAAAAXFKPEO4. You are receiving this because you were mentioned.Message ID: _@_._>

管你设没设置密码,api偷跑的主要两个原因是没设置密码和没改端口。都不用猜,肯定是其中一个你没弄

既然你这么武断,认为一定是我这里出了问题,那当然就没有任何讨论的必要了。

shuaiplus commented 1 year ago

我同意你的说法,谁编程开发都会付出很多心血,但是既然开源,就是放到这里接受所有人的检阅,我只是陈述下我的问题,你难道除了嚎叫,就不会正常一点的讨论问题吗?

纯纯小白,不骂你了。我这么跟你说吧,这跟你分不分享泄不泄露没一毛钱的关系,只要开放公网了,肯定会被扫到。先把功课做好再出来发表言论!!!

shuaiplus commented 1 year ago

我说的已经够文明了,认识到错误了就把这个issues删了。

ghost commented 1 year ago

我同意你的说法,谁编程开发都会付出很多心血,但是既然开源,就是放到这里接受所有人的检阅,我只是陈述下我的问题,你难道除了嚎叫,就不会正常一点的讨论问题吗?

纯纯小白,不骂你了。我这么跟你说吧,这跟你分不分享泄不泄露没一毛钱的关系,只要开放公网了,肯定会被扫到。先把功课做好再出来发表言论!!!

你随便骂好了,我真的不在意,我就是按照播主指导的操作,怎么就开放公网了?我说下我的问题,还得先把编程学完呗,怎么滴,评价个冰箱还得先会制冷呗。

xiaosaaaa commented 1 year ago

删了删了,真是污染其他人的眼睛

ghost commented 1 year ago

我说的已经够文明了,认识到错误了就把这个issues删了。

你文不文明又能怎样呢?我倒是挺好奇,我接受那位发帖人的批评,不代表我就要删帖,我不删又怎样呢?亲

shuaiplus commented 1 year ago

哎,你先把公网,vps,ip,域名的关联弄明白吧。

shuaiplus commented 1 year ago

我说的已经够文明了,认识到错误了就把这个issues删了。

你文不文明又能怎样呢?我倒是挺好奇,我接受那位发帖人的批评,不代表我就要删帖,我不删又怎样呢?亲

你是来搞笑的吧,你以为这里是你的朋友圈???

ghost commented 1 year ago

哎,你先把公网,vps,ip,域名的关联弄明白吧。

如果你是专家,能否请你先确认一下这个应用是否有后门?如果你不是,就不要在这里装什么大尾巴狼。

ghost commented 1 year ago

我说的已经够文明了,认识到错误了就把这个issues删了。

你文不文明又能怎样呢?我倒是挺好奇,我接受那位发帖人的批评,不代表我就要删帖,我不删又怎样呢?亲

你是来搞笑的吧,你以为这里是你的朋友圈???

我是来陪你撕逼的,反正也没啥事,就撕你了。

ghost commented 1 year ago

我说的已经够文明了,认识到错误了就把这个issues删了。

你文不文明又能怎样呢?我倒是挺好奇,我接受那位发帖人的批评,不代表我就要删帖,我不删又怎样呢?亲

你是来搞笑的吧,你以为这里是你的朋友圈???

我是来陪你撕逼的,反正也没啥事,就撕你了。

ghost commented 1 year ago

@ruobing-zhu

从你所透露的信息, 并没有包含提示该项目存在盗用API行为的直接或间接证据。

导致API泄露的因素有很多。比如,你的VPS是否安全?你的VPS网络环境是否安全? 你连接VPS的本地网络环境是否安全,特别是你的节点? 你是否使用了某个第三方的fork版本?

存在这些疑问,是因为我用的是这个项目的衍生项目Kerwin1202/chatgpt-web。 该衍生项目使用了MongoDB托管聊天数据,该数据不可以直接在GUI里删除,只能由管理员(我)在数据库里删除,因而可以追溯历史聊天记录。

在后台,并未发现未知的聊天记录;也没有发现异常扣费行为。

抱歉,光忙着撕了,才看到你这个回复,如果都能像你这样心平气和的说话,这个世界该有多美好。

确实,中间可能出现问题的环节很多,我这么写标题也多少有些不负责任,但是我还是确信不会是VPS这个环节出的问题,本地电脑也非常干净,所以有些武断的写了这个标题,你应该很懂技术,我把安装的几行代码拷贝过来:

curl -fsSL https://get.docker.com -o get-docker.sh sh get-docker.sh

docker run \ --name chatgpt-web \ -p 3002:3002 \ --env OPENAI_API_KEY=Your key \ --restart always \ -d chenzhaoyu94/chatgpt-web:latest

最后安装好以后,直接访问你VPS的ip: http://xxx.xx.xx.xx:3002 即可

就这些,一个重新安装系统的VPS按照这个操作安装完以后,就是我偶尔用浏览器试过几次就基本没用过,应该不存在什么泄露的问题,也不至于什么人为了我这么一个API黑我。

就是到这里说下情况,希望能遇到你这样的人看看,如果不是我的问题,也希望别在其他人身上发生类似的事,仅此而已。

Fugitive844 commented 1 year ago

代码是开源的,有问题早就有人说了,你这个标题不就是找骂吗? 部署的时候有个配置访问密码的项,你看是不是没有加上去,或者你自己在其他地方泄漏的。

shuaiplus commented 1 year ago

你部署的代码里,你的访问秘钥[AUTH_SECRET_KEY]呢? image 我都懒得说你了

ghost commented 1 year ago

代码是开源的,有问题早就有人说了,你这个标题不就是找骂吗? 部署的时候有个配置访问密码的项,你看是不是没有加上去,或者你自己在其他地方泄漏的。

代码确实是开源的,但是怎么能确认一定有人检查过,没有人说就代表一定没有问题吗?我不知道我的逻辑有没有问题?因为我确实是个小白,部署就是按照那个操作执行的,所以都放到这里,让懂的人看看,如果哪个环节有问题,也希望能给开发者做一点贡献,但是我真的不认为其他环节会泄露,要不也不会发到这里。

ghost commented 1 year ago

你部署的代码里,你的访问秘钥[AUTH_SECRET_KEY]呢? image 我都懒得说你了

谢谢你啊,你歇会儿,别累着

shuaiplus commented 1 year ago

image 这网站无时无刻扫描着所有ip和域名,你觉得没泄露只是你觉得,学点有用的吧

ghost commented 1 year ago

image 这网站无时无刻扫描着所有ip和域名,你觉得没泄露只是你觉得,学点有用的吧

大师,请你离我远一点,拜托。

ghost commented 1 year ago

我一个不懂技术的人我都觉得和你讨论是一种耻辱,你是不是觉得火箭可以烧煤啊,大兄弟。

Fugitive844 commented 1 year ago

代码是开源的,有问题早就有人说了,你这个标题不就是找骂吗? 部署的时候有个配置访问密码的项,你看是不是没有加上去,或者你自己在其他地方泄漏的。

代码确实是开源的,但是怎么能确认一定有人检查过,没有人说就代表一定没有问题吗?我不知道我的逻辑有没有问题?因为我确实是个小白,部署就是按照那个操作执行的,所以都放到这里,让懂的人看看,如果哪个环节有问题,也希望能给开发者做一点贡献,但是我真的不认为其他环节会泄露,要不也不会发到这里。

你有疑问可以来求证,但是你的标题是直接上来问罪的口气,肯定让开源社区的人不舒服,开源代码都是大家辛苦维护的,当然这个项目Chanzhaoyu大佬中的大佬。不能不经过求证就上来说个言之凿凿的话,在我看来还是说话语气的原因。

ghost commented 1 year ago

代码是开源的,有问题早就有人说了,你这个标题不就是找骂吗? 部署的时候有个配置访问密码的项,你看是不是没有加上去,或者你自己在其他地方泄漏的。

代码确实是开源的,但是怎么能确认一定有人检查过,没有人说就代表一定没有问题吗?我不知道我的逻辑有没有问题?因为我确实是个小白,部署就是按照那个操作执行的,所以都放到这里,让懂的人看看,如果哪个环节有问题,也希望能给开发者做一点贡献,但是我真的不认为其他环节会泄露,要不也不会发到这里。

你有疑问可以来求证,但是你的标题是直接上来问罪的口气,肯定让开源社区的人不舒服,开源代码都是大家辛苦维护的,当然这个项目Chanzhaoyu大佬中的大佬。不能不经过求证就上来说个言之凿凿的话,在我看来还是说话语气的原因。

这个中肯,确实有欠考虑,我试试能不能改啊,真的第一次发帖。

JPmorganA commented 1 year ago

这么跟你说吧,因为现在这个项目已经有很多人都知道了,所以就会有别有用心的人扫,只要html里的title也就是网站标题有chathpt-web就会被扫到,被扫到之后如果你刚好没有设置密码就会被持续不断的扫,你如果会看日志的话你就会看到GPT一直在重复我是GPT巴拉巴拉的提示语

ghost commented 1 year ago

这么跟你说吧,因为现在这个项目已经有很多人都知道了,所以就会有别有用心的人扫,只要html里的title也就是网站标题有chathpt-web就会被扫到,被扫到之后如果你刚好没有设置密码就会被持续不断的扫,你如果会看日志的话你就会看到GPT一直在重复我是GPT巴拉巴拉的提示语

你说的虽然我能理解一点点,但是我有个疑问啊,我是严格按照那个教程安装的,确实也不懂,我现在回想好像没有任何地方提示我设置密码吧,但是我记不清了,确实记不住了,安装完就再没动过,不是这个应用是否有强制设置密码这一步,如果有,我一定设置了,因为我非常注重安全,我知道互联网上有很多很多危险,如果没有,那就真的希望能够引起开发者的注意,是否在代码中强制增加这么一步。

JPmorganA commented 1 year ago

改的话很容易把项目fork下来,然后改index.html里的titel就好了,你如果真的一点编程知识都没有也不会用github的话就当我上面的没说就好了,用docker的话就直接把AUTH_SECRET_KEY这个环境变量加上,冒号后面填你要设置的密码

Fugitive844 commented 1 year ago

配置访问密码,访问必须带密码,密码盐自己改下。如果你设置了密码,你访问网站时肯定会提示先输入密码才行。
而且,一定要用https,用http被抓包就算设置了密码也一样会出问题。

JPmorganA commented 1 year ago

因为这个项目其实并不是给完全小白的人使用的,github里的作者都是默认大家多少会点编程知识的,只会告诉有那些环境变量可以设置,根据需求设置

ghost commented 1 year ago

我又重新看了一遍那个视频,里面确实没有告诉怎么设置密码,只是告诉添加APIkey了,那我就应该没有设置密码,也许可能是像你们说的一样,被扫描到了明文,然后拿走了API,那我就又有一个疑问,这个项目这么多人在用,难道只有我这里出现这个问题了吗?

ghost commented 1 year ago

配置访问密码,访问必须带密码,密码盐自己改下。如果你设置了密码,你访问网站时肯定会提示先输入密码才行。 而且,一定要用https,用http被抓包就算设置了密码也一样会出问题。

你说的这些视频里都没有说到,所以也许就是被抓包了,那我觉得我放到这里是否可以提醒一下开发者,采取一些什么样的预防措施能否避免别人遇到同样的问题,也可以洗脱嫌疑,是这样一个道理吧。

JPmorganA commented 1 year ago

教程视频里都是教的最简单直接的方法,这些东西一般都不会说,怕有人按照上面做了又出现什么问题,又来问,毕竟谁都希望多一事不如少一事嘛

ghost commented 1 year ago

我以前做过客户服务工作,我觉得一个公司对待客户反应问题的态度,是观察一个公司最好的方式,这件事我想应该是一个道理,这是一个开源的平台,开发者放上他们开发的应用,我不知道是否有盈利手段,也不知道背后的动机有哪些,但是我想,能够让这个应用不断好用最有效的方式,就是听取那些使用者反馈上来的问题。

JPmorganA commented 1 year ago

你说的这些视频里都没有说到,所以也许就是被抓包了,那我觉得我放到这里是否可以提醒一下开发者,采取一些什么样的预防措施能否避免别人遇到同样的问题,也可以洗脱嫌疑,是这样一个道理吧。

这个提醒了别人也不会理吧,毕竟这本身就不是给小白用的,并且别人已经写得很清楚了,要设置什么东西就添加什么环境变量

ghost commented 1 year ago

你说的这些视频里都没有说到,所以也许就是被抓包了,那我觉得我放到这里是否可以提醒一下开发者,采取一些什么样的预防措施能否避免别人遇到同样的问题,也可以洗脱嫌疑,是这样一个道理吧。

这个提醒了别人也不会理吧,毕竟这本身就不是给小白用的,并且别人已经写得很清楚了,要设置什么东西就添加什么环境变量

别人理不理没有关系,我只是做了我觉得应该做的事而已,如果这个项目不是给所谓的小白用的,那确实是我的问题。

JPmorganA commented 1 year ago

我以前做过客户服务工作,我觉得一个公司对待客户反应问题的态度,是观察一个公司最好的方式,这件事我想应该是一个道理,这是一个开源的平台,开发者放上他们开发的应用,我不知道是否有盈利手段,也不知道背后的动机有哪些,但是我想,能够让这个应用不断好用最有效的方式,就是听取那些使用者反馈上来的问题。

你可能并不了解github,github是一个开源的平台这个你应该知道,竟然开源,所有代码都公开自然也就没有盈利可言,开发项目完全是看个人意愿,并且github是个专门给程序员提供的平台,任何人都可以用作者的项目进行二次开发,这个才是github

JPmorganA commented 1 year ago

你或许可以试着问一下你看的那个视频作者要怎么设置密码,或者到那个视频底下的评论区问,应该会有很多人乐意回答,在这里问的话,我说的直白点就好像别人问你1加1等于几一样

ghost commented 1 year ago

我以前做过客户服务工作,我觉得一个公司对待客户反应问题的态度,是观察一个公司最好的方式,这件事我想应该是一个道理,这是一个开源的平台,开发者放上他们开发的应用,我不知道是否有盈利手段,也不知道背后的动机有哪些,但是我想,能够让这个应用不断好用最有效的方式,就是听取那些使用者反馈上来的问题。

你可能并不了解github,github是一个开源的平台这个你应该知道,竟然开源,所有代码都公开自然也就没有盈利可言,开发项目完全是看个人意愿,并且github是个专门给程序员提供的平台,任何人都可以用作者的项目进行二次开发,这个才是github

这是一个open的社区,也希望这里的人都能有一种open的心态。

ghost commented 1 year ago

你或许可以试着问一下你看的那个视频作者要怎么设置密码,或者到那个视频底下的评论区问,应该会有很多人乐意回答,在这里问的话,我说的直白点就好像别人问你1加1等于几一样

抱歉,我都不知道要设置密码,我怎么能想起来去问怎么设置密码?不是每个人都懂技术,但是技术一定是给人用的吧。

ghost commented 1 year ago

正是因为在这里把问题说出来,才有人告诉我需要设置密码,或者说才有人分析可能是那个环节出了问题,不是吗?