收到学校要求下架学生服务相关的小程序

2021-10-28 08:05:59 +08:00
 sunnysab

我有一个朋友,咳咳,本科阶段(未毕业)开发了一款微信小程序。用户提供学校统一登录的用户名和密码,然后程序去拉取成绩、课程表、消费等信息,并提供给用户。项目是开源的,服务器放在境内云服务器上。

然后近期信息化技术中心以《数据安全法》、《网络安全法》为由,要求停止运营。此前,他们在刚开发这款小程序时向信息化技术中心提出过合作,当时对方拒绝并提出两个选项:

  1. 程序给信息化技术中心运营,学生只负责开发,都不带挂名的,并且要写信息化技术中心提的需求。
  2. 给信息化技术中心打工,维护学校的系统( C#、Java 之类),按勤工助学( 12/h )给钱。

然后谈崩了。

现在情况是:

  1. 由于需要走学校统一登录,所以数据库大概率需要明文存储用户密码。一个解决方案是,数据库中存储一个对称加密后的密码,小程序前端存储一个 key ,每次用户操作时解密。或,数据库不存储用户密码,全部放到小程序前端以满足合规性。其实没啥用,因为理论上还是能获取用户密码的。我现在倒是觉得用户密码是累赘。

  2. 由于请求过多,数据库中缓存了一些数据。一些学校页面需要近 10 秒才能访问。并且,由于一些功能大家之前不咋用,但是因为小程序使得查询更方便了,所以查询次数增多(如成绩),因此我同学认为其他一些业务数据的缓存也是必要的。

技术约束:

  1. 要走学校的上网认证系统去连公网,不然啥都传不出去。
  2. 信息化技术中心总能顺着网线找过来。

其他:

  1. 其实做这个事情最大的阻力还是同学指导老师,都不会和信息化技术中心争取一下。
  2. 其实是学校网站里的一些数据有问题,他们不想我同学频繁查,这样去提数据有问题的人就变多了。为此他们还让我同学下架了一个模块。
  3. 感觉是学校部门之间的问题,信息化技术中心主要是想清闲点不给自己找事情,学校知道了不知道会不会支持。其实服务器放学校什么的,包括运营和学校联合起来、我们都接受的。
  4. 该项目从设计之初就是不盈利、无广告。云服务器靠学校报销,无金钱利益牵扯。

请问:

  1. 个人为主体的小程序,在这种情况下,数据是否存在合规性相关问题。
  2. 不想这个项目荒废,现在应该咋办?我同学打算先拖拖,后面以个人名义运营。
14118 次点击
所在节点    问与答
149 条回复
villivateur
2021-10-28 08:10:45 +08:00
这种事情我熟,学校就是懒政而已,你可以选择听学校的,或者假装“关闭”,具体 @pdfgo 更熟
zcf0508
2021-10-28 08:20:52 +08:00
没理解为什么要存密码,你存个 token 用接口后端直接去拉数据就好了。

我们之前连接口都不给,找各种领导找了将近一年,各种说辞。终于拿到文档之后,结果只过了半年,人家又把接口更新…

学校的业务也都是三方开发的,他们也很难受,不知道相关的条文里是不是禁止这种行为,毕竟你其实也是发起正常的请求的。
locoz
2021-10-28 08:21:27 +08:00
就缓存账号密码和数据这一点而言,就已经不行了…这相当于从本质上对学校系统进行了替代,并且掌握了大量其他学生的数据,是很危险的行为,在学校外的话很可能已经被起诉了…

这种学校相关部门已经找过来的情况下,就老老实实下线或者合并吧,其实主要还是看做这东西是真的想要做公益还是为了名气了…如果是前者的话直接按对方的 1 选项来就行;如果是后者的话就下线这个改做别的,反正又不是没别的东西可以做。

然后这个程序也不用扔掉,改成本地化运行提供给其他学生使用还是可以的,代码对学校内开源(不要放 GitHub 之类的公共场所)就好了,署名还是能署自己的,学校也没法管,毕竟运行时不连公网。
7gugu
2021-10-28 08:22:07 +08:00
其实可以把后端服务塞到云函数上,让信息化中心无法定位你,这样子学校也拿你没办法,顶多他们就是关闭外网访问而已。

PS:去做信息化中心的部长,拿内部接口其实是更爽的选择,赚个名头,还能实现自己的目标
ersic
2021-10-28 08:26:17 +08:00
不管你怎么淡化,存密码就是存密码了,存数据就是存数据了。
villivateur
2021-10-28 08:26:50 +08:00
你可以在校园内网环境架一个服务器,然后用 frp 之类的穿透到公网,这样也许就降低了他们的网络压力
shakoon
2021-10-28 08:27:52 +08:00
1 、单点登录 /统一门户是不需要保存用户密码的
2 、看了半天,这个项目似乎并没有费用,也没获得收益,那不做就不做了啊,有何损失
locoz
2021-10-28 08:29:20 +08:00
@locoz #3 补充一下,还有个很关键的点,这东西放在云服务器上…咋想的?都缓存了账号密码和学校内部系统的数据还敢放云服务器上?出了安全问题数据泄露怎么办?这来个处分都是小的,要是比较严重,学校要强硬追责的话很可能会承担刑事责任…
wpblank
2021-10-28 08:31:20 +08:00
我们学校的也是被约谈然后收编正规军(
cpstar
2021-10-28 08:36:41 +08:00
作为学校网络信息中心的一员,至少我个人的思路是,你这个东西趁早与学校没有关系,关闭也好,冒称关闭也好,反正不要挂学校名、离学校远远的、不要大肆宣扬。我会睁一只眼闭一只眼。至于收编,我个人才懒得要。

那些成绩数据什么的,学校数据互联互通,哪个拿不到,还需要让用户提供用户名密码?这个让用户提供用户名密码的行为就是最大的网络安全风险——你不整改谁整改。
至于说你的这个服务停止后,学生的不便利了。那是本来网信中心的工作没做好,没有提供相应服务,解决办法不是把你的东西收编,而是按照前述互联互通的思路,打通数据之后,提供统一服务。

这两年高校信息化的工作重点基本上都是数据互通,数据服务,如果你们学校做的不怎么样,那就挂学校。
RuifuSu
2021-10-28 08:38:09 +08:00
太厉害了👍
cpstar
2021-10-28 08:38:33 +08:00
《刑法》第二百八十六条,破坏计算机信息系统罪。研究一下案例去吧,总有一款能套上你。
sunnysab
2021-10-28 08:41:31 +08:00
补充一下,回应一下质疑。

校内网站只能在校内访问,因此我们做了个代理节点,在校内接收服务端(云服务器)请求,然后去拉取数据,再返回。通过反向 RPC 实现的。我还做了套缓存,缓存 cookie ,减少学校服务器压力。

这么说,现在改进方案是:数据库放学校内。

学校信息化系统 09 年做的,很难用,这也是我同学开发的初心。用 cookie 做验证,两个小时过期。所以密码没法不存啊。要么就是密码存前端。
sunnysab
2021-10-28 08:44:46 +08:00
@shakoon @locoz 我们学校的系统还是 emm 用的 cookie ,两个小时失效。

开发前也是做了合规性考虑,然后想到携程也是缓存了 12306 的密码啊……也是用户主动提供的。


@7gugu 有内网服务器需要保持长连接。
@ersic
40EaE5uJO3Xt1VVa
2021-10-28 08:46:26 +08:00
这事我知道,当年跟网络中心的老师熟,恰逢选课,我学了点 redis 高并发,就臭显摆跟老师说,要不让我写个选课替换上去,既能解决问题还不要钱。

老师批评了我一顿,我在微信里找到原话:

“人家花了那么多钱 都没给解决的问题,你用个不花钱的给解决了,你还想不想在这个圈子混了。”

一语惊醒梦中人。太多人情世故,不是技术能解决的。
cpstar
2021-10-28 08:52:59 +08:00
@yanzhiling2001 15# 你的老师就是个扯,这跟钱没关系。跟能力和政治有关系——能力是厂商能力,这个厂商不行换下一个厂商;政治是部门间协调能力,没有这个能力,就算来个 BAT 也是扯淡。钱??开玩笑。体制内,什么时候被钱束缚过??
chotow
2021-10-28 08:59:28 +08:00
帐号密码想都不用想不能存服务端,前端每次请求都带上保存在前端本地的帐号密码。
剩下的,是否违反规定我不了解,但既然官方不让做,还是放弃吧,吃力不讨好没啥意思。至于这套东西,可以当作课程设计或者毕业设计。
locoz
2021-10-28 09:01:12 +08:00
@sunnysab #14 别跟携程之类的大公司比啊...别人有足够强的技术实力,可以保障数据安全,你们能吗?别人有足够强的法务团队和相对严格的组织架构,可以保障操作合法、用户协议没有纰漏、内部操作流程规范,你们有吗?别人高层还有足够强的人脉,可以跟 12306 商量好那些破事,甚至人家可能内部都不需要拿着账号密码去登录、去抢票的,你们能做到吗?没法比的。

最好的办法就是改本地化,所有数据不要经过自己的手,把风险撇干净。虽然使用起来比现在麻烦了点,但还是能比学校的系统好,这就足够了。
sunnysab
2021-10-28 09:02:41 +08:00
@locoz 有道理。数据存内网。
locoz
2021-10-28 09:02:58 +08:00
@cpstar #16 他老师的意思是内部有人跟厂商关系好或者收了回扣,虽然厂商水平不行但是只能给它做,本来就不是钱的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/811121

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX