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

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. 不想这个项目荒废,现在应该咋办?我同学打算先拖拖,后面以个人名义运营。
14207 次点击
所在节点    问与答
149 条回复
ipwx
2021-10-28 13:20:09 +08:00
此前,他们在刚开发这款小程序时向信息化技术中心提出过合作,当时对方拒绝并提出两个选项:

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

----

我觉得这个学校的信息化技术运营中心已经解释的很明确了,也很够意思了:

“你们学生想做点东西,我们也能给钱(按勤工助学( 12/h )给钱)。你们怎么做都行,你们提的改进意见甚至我们可以背锅(写信息化技术中心提的需求)。但是必须我们管理,这样才不会有出篓子的可能。”

就这还不够意思啊?
ipwx
2021-10-28 13:21:31 +08:00
@sunnysab 。。。操作系统本身有漏洞被黑了这种事情你怎么办?从 ssh 到内核到 http 服务器都有可能有漏洞哦。

你们的管理密码要是存在哪里(比如 Evernote )被脱库了怎么办?如果是常用密码,别的网站被脱库了以至于密码泄露怎么办?
ipwx
2021-10-28 13:24:57 +08:00
@sunnysab 我可能还得再强调一下。

楼上都提到了,技术、管理潜在的风险。但是其实“需求”本身就是有风险的,一般体制内改需求是要上报领导同意的(领导同意他背锅)。因为要考虑后续影响。如果你个需求后续引起了重大社会性事件怎么办?

当然因为你们这个 App 的性质,信息中心已经明确了,它愿意你们先斩后奏,它负责背这个需求的锅。这确实很够意思了。。。
phxsuns
2021-10-28 13:25:13 +08:00
学校给的俩选项也没有很差啊,为什么会谈崩。。。
这种事情背靠学校来做很舒服,有的时候还能捞点其他好处(此处不做展开)。。。
ipwx
2021-10-28 13:28:58 +08:00
@sunnysab 再接一个点评。

“并且要写信息化技术中心提的需求”

这句话本身就是重点中的重点啊。

“学生只负责开发,都不带挂名的”、“并且要写信息化技术中心提的需求”。

这两句话什么意思呢?意思是,信息化中心的领导确信,你们折腾的这个东西可能延伸出来的需求,算是他职责范围内可以自主决定的需求变更,哪怕有些什么后续影响,都属于他自主履行他的职权,是合规的,没有问题。

但是“同意学生自己建服务器,连接学校系统”这件事情,本身不属于他的职权能同意的事情。哪怕不出任何篓子,这件事情本身就超过了他的职权,是不合规的。

----

说白了领导根本不 care 你这点小“创新”,主要还是,你这种做法超过了信息化部门领导所能同意的边界。
pems002
2021-10-28 13:29:23 +08:00
合并貌似是最好的方案,学校没起诉已经算是好的了,可以和学校继续协商(我们学校的教务系统垃圾,学生自己搞得不错传播度高,学校自己也没办法就给了接口。。)
Orciorc
2021-10-28 13:30:04 +08:00
划不来的哥们,为了这么点成就感,何必呢
sunnysab
2021-10-28 13:30:37 +08:00
@ipwx 他们不够意思,这段话不是这么理解的。实际上是,学生过去只有写代码的权利,而不能提出任何意见。给 12/h 是因为这钱不是他们出,而是市里拨款,是学校的勤工助学。

就是说你写了个便民小程序,然后交给学校。你今天想方便学生报名活动,他们说不行,你得给我搞个党史答题出来。这个无法接受,倒不是钱的问题,开发了这么久也没啥钱,也不拉商业广告。

----

哎,其实学校那系统做的漏洞不少。我们之前试探性地去反馈一个漏洞,连个谢谢都没说,就让走了。这后面谁还反馈…

----

最近在找愿意接手的学校部门,然后让部门去谈。
IvanLi127
2021-10-28 13:32:22 +08:00
这操作感觉有点刑,学校不合作,你就不应该继续做了。你们能保证数据安全吗?建议私下使用或者关停放弃。
sunnysab
2021-10-28 13:36:16 +08:00
@phxsuns 信息化中心当时的心思在他们自己的一套系统上(那套系统是二级外包的,而且是低代码开发)。嗯,虽然一期工程还不能用,但是他们已经在搞二期工程了。

我们当时去谈,也是抱着这样的想法。我们去要电费接口,其实我之前还是研究了下的,他们数据是直接从 MySQL 查询的,但是跟我谈的那个领导也不懂,就说“不是不是”、“这个不行”、“数据量几百万条你们撑不住的”…不是单纯地因为 12/h 所以谈崩。

我们做的电费查询能显示用电情况(每半小时获取一次,然后作差),暴露出了学校电费计费系统的一些问题。找他们反馈的人多了,他们自己承认有问题但是不想修,想让我们下架。

@ipwx “说白了领导根本不 care 你这点小“创新”,主要还是,你这种做法超过了信息化部门领导所能同意的边界。” 懂了。
lyminghao
2021-10-28 13:42:14 +08:00
还是想严肃提醒 lz 和其它类似想法的同学,如果有人报案,你们绝对构成破坏计算机信息系统罪,所以尽快收手吧。
xlsepiphone
2021-10-28 13:57:47 +08:00
楼主应该是没有接受过社会的毒打,这种事儿,我读大学的时候也干过。

学校的成绩查询系统存在 SQL 注入风险,我写了封邮件提醒他们修复,不过我也留了个心眼,邮箱是小号,没用寝室的网络进行漏洞扫描,用的公共 WIFI 。

不然后面成绩查询系统如果被黑了,说不定我还要倒成替罪羊。
sowish
2021-10-28 14:14:23 +08:00
lz 以为自己写的代码安全性如何,有没有 rce 、sqli 风险?大厂多年的程序员都可能出这种安全漏洞,更别说你们了,一旦出问题造成大规模信息泄露,你们能付得起责任?
hicdn
2021-10-28 14:15:11 +08:00
别犹豫,关了吧。缓存密码和数据,学校要追究直接可以吃牢饭了。
idrawer
2021-10-28 14:21:13 +08:00
@yanzhiling2001 什么人情世故,就是劣根性还沾沾自喜
sunnysab
2021-10-28 15:07:42 +08:00
@sowish 后端技术路线比较小众,拿 Rust 写的(估计暴露了),我那同学自以为写的还不错 hhh

已经联系上信息办那边了,应该是可以沟通的,找了学校其他部门和学院介入、帮忙。
gangsta
2021-10-28 15:12:00 +08:00
刚才打了很多字,都删掉了,看的出楼主是个技术至上的人,下面 v 友的回复很少提到技术的,都是在从其他层面出谋划策,回复里楼主还在提什么查询优化,cookie ,rpc ,端口安全
既然不是牟利,那么不忘初心,加油吧!格局打开,看看 ACM ,topcoder ,只是提升技术的话,互联网这么大,能练手的东西太多了。
ziseyinzi
2021-10-28 15:27:20 +08:00
几年前我校的教务系统是正方的,很难用不说,还只支持 IE 。有学长开发了一个微教务,就是类似楼主这种,把常用的查成绩之类的功能做了一个好用的页面,各大浏览器包括手机端都能用。应该没有缓存数据,而且会强调自己的非官方属性。后来这个微教务就被学校收编了,换成了 wjw 开头的学校域名,仍然很好用。不知道背后发生了什么。
YvesX
2021-10-28 15:29:14 +08:00
为啥要对抗,你对这个系统高度了解,也有开发基础,说服学校做这样一个升级项目不行吗?
就算这种事已经有意向单位了,最终也还是需要人来做事的,除非被故意排除,想参与总是能参与进来的。
shadowfish0
2021-10-28 15:33:54 +08:00
看的瑟瑟发抖,我也搞了个要求输入教务密码,可以在查看课表、成绩啥的小程序。

我们学校的环境:
1.我们没有学校内部接口,完全是模拟的学校网站接口调用,学校网站全部都是公网开放的
2.我们不在服务端存储密码,密码都是在用户本地存储,每次请求时传过来的
3.我们学校对这种东西挺宽容,一直都有一届届学生做差不多功能的东西,学校官方也知道,态度是领导自己开会提到“最近学生有读取成绩的工具,你们(教师)发布成绩的时候注意点,核对好了再发,别引起冲突”
4.我们有在服务端缓存学生的课表数据,但是没有缓存成绩数据

这样不会也很刑吧

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

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

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

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

© 2021 V2EX