V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sunnysab
V2EX  ›  问与答

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

  •  
  •   sunnysab · 2021-10-28 08:05:59 +08:00 · 14141 次点击
    这是一个创建于 1128 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    然后谈崩了。

    现在情况是:

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

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

    技术约束:

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

    其他:

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

    请问:

    1. 个人为主体的小程序,在这种情况下,数据是否存在合规性相关问题。
    2. 不想这个项目荒废,现在应该咋办?我同学打算先拖拖,后面以个人名义运营。
    第 1 条附言  ·  2021-10-28 18:16:20 +08:00
    https://github.com/SIT-Yiban/kite-microapp
    目前停了,就这样吧。
    学校说开会讨论,讨论出结果就合作,不行算了试试 app 。今天一天了,看开了。
    149 条回复    2021-10-29 19:41:20 +08:00
    1  2  
    Trim21
        101
    Trim21  
       2021-10-28 15:38:42 +08:00 via Android   ❤️ 1
    之前我也做过类似的东西,然后教务系统直接把接口的返回数据改了,把我用到的字段给去了…

    你可以考虑丢到 GitHub 上,谁想用自己部署呗。
    locoz
        102
    locoz  
       2021-10-28 15:44:32 +08:00
    @shadowfish0 #100 数据里包不包含姓名、学号之类的信息?包含的话也有风险。
    paicha
        103
    paicha  
       2021-10-28 15:53:36 +08:00
    这几年各种网络的合规化越来越越严格了,放 3 、5 年前还是可以做的。现在要谨慎些,多和网络中心的部门沟通,能挂名做就最好。
    docx
        104
    docx  
       2021-10-28 15:58:02 +08:00
    个人觉得,这种东西只要不是官方出面,却又与官方扯上关系,那就永远避免不了被收归。
    更严重的告你破坏计算机系统罪。

    其实最关键的问题还是利益。
    学校那些系统都是外包的,外包公司可能是某个领导的,你这样就动他蛋糕了,当然不愿意。
    而且很多难用的系统大都上古了,一般的管理老师也不敢乱碰,不然出点大问题要担责的……

    所以既然无法接受被 PUA ,最好的办法就是关停,哪怕是假关停。
    后期调整,比如名字什么的都要去官方化,数据包最好也是从用户端直接请求,不要经过你们中转了。

    ---

    至于 12306 和携程这类软件的关系,我确实也有点不理解。
    或许是第三方平台带来的购票收益够大,所以 12306 睁一只眼闭一只眼了。
    docx
        105
    docx  
       2021-10-28 16:05:50 +08:00
    @NCZkevin #54 偏个题,其实各种学生群、老师群里早就 excel 乱飞了,混进去要拿到数据很容易,比起你这里的泄漏电话严重得多。

    有些学校还主动把学生信息发给合作的校外培训机构,然后各种考研出国培训的电话就都来了。

    颇有那味了。
    phxsuns
        106
    phxsuns  
       2021-10-28 16:07:11 +08:00
    @sunnysab
    就这件事情而言,如果要想继续做下去,一定是得拿到官方认可的,不然法律风险巨大。
    和领导谈的时候也不要太纠结什么技术方案,他可能真不懂。可以等到转型成功,和信息中心老师都熟识了,再去推你想要的技术方案。
    renothing
        107
    renothing  
       2021-10-28 16:12:35 +08:00
    这条路是 0 收益风险敞口无限大。新的网络安全法不但会让你无法毕业,甚至有牢狱之灾。

    * 绕开授权提供代理从外网访问已经是妥妥的违法行为了
    * 本地缓存信息你觉得是缓存,学校可能会觉得是收集,要是不小心泄漏,直接就是刑事责任。
    * 未经学校允许存储用户密码信息更是大忌。

    学校让你下架已经是客气的了。不要心存侥幸,要是哪天数据泄漏了,你后悔就晚了。
    ZeroDu
        108
    ZeroDu  
       2021-10-28 16:26:33 +08:00
    @dzyou2007 这个很真实,以前谷歌可以搜一堆学校网站里面 excel 。QQ 里面还好。内部交易这个没办法,以前毕业、高考后之类的一堆这种电话
    ZeroDu
        109
    ZeroDu  
       2021-10-28 16:27:35 +08:00
    @ZeroDu 手滑,QQ 群
    doodle77
        110
    doodle77  
       2021-10-28 16:29:32 +08:00
    看看能不能申请大创项目之类的,找导师 /系主任 /院领导挂个名头。
    klinson
        111
    klinson  
       2021-10-28 16:29:37 +08:00
    关了吧,你这是存帐号密码去爬数据,本身操作就是违法的

    学校系统一般都是外包的,而且很可能各种系统开发商不一样,开发接口需要成本很大,学校也不想添加额外成本
    如果任由你记录用户账户密码,而不是进行统一的校内认证,就存在盗号偷信息的风险,何况你服务还是放公网,学校肯定是拒绝的
    aristolochic
        112
    aristolochic  
       2021-10-28 16:30:48 +08:00   ❤️ 3
    我就想这种你但凡去做个客户端然后里面的 WebView 想干啥就干啥,还用得着后端嘛?实在不行每次让用户输入账号密码就当一个 API 网关也行,干嘛非要在企鹅家的私有 Web 里整花活,还得想办法教会用户导出 cookies ,还想了半天小程序有没有自定义 cookies 的限制。

    然后翻回去一看,居然存的是账号密码?

    ???

    你怎么敢的啊?

    现在不是说心疼自己开发了半天的东西没用了的时候,应该是不用吃大碗牢饭而高兴的时候。
    klinson
        113
    klinson  
       2021-10-28 16:32:33 +08:00
    我之前公司就是给我自己母校做系统的,包括中央认证也是我设计重构的。有职务之变,自己私下做过一个查成绩和课表等信息的小程序,也没想着靠这个盈利啥,(其实那个时候是为了方便女票查询而已),再后来被公司知道了,也是责令关闭了,不然风险很大的。。。

    再后来学校自己做了一个 APP 了,支持各项查询
    docx
        114
    docx  
       2021-10-28 16:32:35 +08:00
    @ZeroDu 其实这还只是冰山一角,学校里的电脑维修点、打印店可能是最严重的,一些有权限的学生拿到关键资料,但并没有数据保护意识,随意发给其他人,或在修电脑、打印材料的时候被他人利用。
    secretman
        115
    secretman  
       2021-10-28 16:43:50 +08:00
    马上下架,去掉服务器的代码,离开网络部门,然后等学生们抱怨投诉网络部门(自己不参与不煽动),学校求你给他们代码也不给。
    sunnysab
        116
    sunnysab  
    OP
       2021-10-28 17:07:12 +08:00 via Android
    聊完了,先下架,等通知
    (这流程好熟?)
    soupu626
        117
    soupu626  
       2021-10-28 17:36:13 +08:00
    1 ,通过代理暴露内网到公网,在任何一个公司,都是红线,直接开除,没有可以谈的
    2 ,明文存储密码,这个肯定不合规,存储他人信息,有签用户协议么。。。

    楼主现在明显学生气太重了,还在单纯的想技术问题和技术方案,但说实话,教务系统,没有任何的技术含量纯纯的 CRUD ,做一遍,了解基本 web 应用的开发流程就行了,没必要再继续维护下去了。
    Yunen
        118
    Yunen  
       2021-10-28 17:37:03 +08:00
    做个离线版的 app ,直接存数据在用户的手机上好了
    ZeroDu
        119
    ZeroDu  
       2021-10-28 18:17:53 +08:00
    @dzyou2007 有同感,学校附近的几个打印点,每次需要打印作业,各种证件的时候,人挤人
    leoleoleo
        120
    leoleoleo  
       2021-10-28 18:36:30 +08:00
    作为公司的信息安全岗位,经常和法务部门以及公安局网安支队打交道,以一个信息安全工程师的专业向你保证,你们在没有得到学校授权的情况下,之前做的事情真的是违反各种法律和合规要求。你还在考虑技术上的解决方案和协商的问题,但是根据你们之前的行为,学校如果向公安机关报案,你们真的会被公安部门带走调查,如果出了数据泄露的问题,或者你们内部有人作恶,买卖学生的个人信息,直接就会负刑事责任。有技术追求是好事,但是真的先去了解一下法律,保护好自己,不要因为个人意气,影响自己的人生。
    OysterQAQ
        121
    OysterQAQ  
       2021-10-28 19:31:24 +08:00
    你应该马上停掉现在功能然后转型,想办法留存好用户,做点别的,要不就等着挨处分 or 刑事责任。
    d5
        122
    d5  
       2021-10-28 19:46:26 +08:00
    不懂就问,🐶😂

    以前不是有很多公众号查教务的开放平台吗?甚至以插件形式在正规军微校( https://weixiao.qq.com/)商店开放接入。
    比如武汉大学孟飞大神的大学助手,还有厦门大学正强大神的萌小助。
    junkun
        123
    junkun  
       2021-10-28 20:05:06 +08:00
    @yanzhiling2001 你能力再高总有毕业的那天,以后出问题谁来维护。这才是所有学校不可能让学生来做服务的最重要的原因。
    vance123
        124
    vance123  
       2021-10-28 20:12:41 +08:00
    说起来我读书的时候学校有个假期去向的小程序,没有对请求做鉴权,结果是十年内的学号,姓名,手机号都泄漏了,也不知道是外包还是学生写的。
    quake0day
        125
    quake0day  
       2021-10-28 20:33:33 +08:00
    十多年前我也做过一个 GPA 计算的程序,逻辑也是从教务处模拟登陆抓取数据然后进行计算。现在网络规范越来越完善,但同时开发者也逐渐失去了自由。

    不过楼主作为学生能够在学生阶段开发维护一个系统这件事情本身就是一个很宝贵的经历。
    royzxq
        126
    royzxq  
       2021-10-28 21:07:30 +08:00
    你们也太刑了, 直接内网穿透是吧
    mooyo
        127
    mooyo  
       2021-10-28 23:09:55 +08:00
    别做 快跑 app 可以留下来给社团内的人开个白名单用 别暴露到外网
    NormanGhost
        128
    NormanGhost  
       2021-10-28 23:21:40 +08:00
    学校会有 1 万总方法整你,毕竟我国都有寻衅滋事这种罪。建议您还是下架放弃了吧。
    mytsing520
        129
    mytsing520  
       2021-10-28 23:22:10 +08:00
    过来人讲一下。
    第一,没授权的前提下,任何形式的抓取,直接违法,没任何理由。
    第二,密码放在你这里,爬虫形式读取?别忘了国内几家知名企业里的爬虫入刑。
    第三,要是出了什么事情,学校里一大帮人陪着你们进监狱,校长都有可能被撤。
    clf
        130
    clf  
       2021-10-29 00:27:52 +08:00 via iPhone
    存储数据本身就是违规操作,我们帮学校开发系统都要签保密协议的,而且都是私有化部署。
    cadmuxe
        131
    cadmuxe  
       2021-10-29 00:29:27 +08:00
    关于密码的部分,如果明确告知用户会存储登录信息是否违法呢?因为我有用一些自动记账服务( mint.com ),他们会存储银行的用户名和密码,很多人不用他们的服务就是担心安全。
    至于抓取的信息,如果只是抓用户自己的信息不知道可不可以。

    当然,存储了密码,加密没做好导致泄露就是另外一回事了。
    littlewing
        132
    littlewing  
       2021-10-29 00:30:29 +08:00
    好家伙,拿到了所有学生了帐号密码,成绩,课程表,消费信息,判你个 5 年不亏
    liprais
        133
    liprais  
       2021-10-29 00:47:35 +08:00
    你这现在没有警察上门已经是万幸了,存储用户的别的系统的密码这个就够直接坐牢了........
    ZC3746
        134
    ZC3746  
       2021-10-29 00:48:40 +08:00
    哪天楼主不更新,是不是说明被抓了?
    zzztongxue
        135
    zzztongxue  
       2021-10-29 00:54:20 +08:00
    @paicha 这个头像很熟悉,一看果然是莞香广科的作者
    paicha
        136
    paicha  
       2021-10-29 01:08:25 +08:00
    @zzztongxue 😂 我头像换了都能认出来。
    bwangel
        137
    bwangel  
       2021-10-29 01:10:18 +08:00   ❤️ 1
    看到楼里有人说这是劣根性,很简单的技术问题非要扯上人情事故。

    我想说,这不是人情事故,更不是劣根性,这是权责要分明,无论在什么时候,什么地方,都要讲求权责分明,谁决策,谁负责。

    小程序是学校冠名的,发生了信息泄露事故,就是学校网络部门的责任。
    小程序是学生自己开发的,没有声明和学校的关系,发生了信息泄露事故,那就是程序开发者的责任,如果情节严重,还要追究法律责任。

    楼主,你们还年轻,有着大好的前途。做这个小程序经济收入极少,承担的责任却很大。没必要揽这么多责任到自己头上。
    gosas
        138
    gosas  
       2021-10-29 01:22:06 +08:00
    你考虑过隐私吗?
    chinvo
        139
    chinvo  
       2021-10-29 02:43:21 +08:00 via iPhone
    在校期间做过内网服务的出来说一下.

    我们都是在信息中心挂学生助理的, 想做什么可以自行决定, 做的东西开放之前必须报备. 有时候也有一些“任务”但是不是强制性的, 相当于哪个老师有想法或者点子然后一起做实验.

    用户数据接入在以前没有 CAS 的时候是自己写的独立用户系统, 在用户注册时用 LDAP 验证内网账号信息. LDAP 相关代码有人审计, 不能保存用户输入的用户名和密码, 但是可以用获取的学号当标识.

    所有服务必须合规, 不能提供任何公网访问.

    后来开始做等保的时候, 相关的服务也都要达标的.

    你这个不管怎么说, 都只能先关闭. 然后向合规的方向改造. 包括数据不能存留, 访问要做隔离等. 至于你们收到的两个方案, 其实都已经很优惠了, “招安”之后肯定不会当苦力用的.
    suxiaohuan
        140
    suxiaohuan  
       2021-10-29 03:38:49 +08:00
    我的天,退一万步讲,你朋友的用户知道自己的用户名和密码被明文储存了吗?如果知道了,还敢用吗?
    alexkuang
        141
    alexkuang  
       2021-10-29 03:49:29 +08:00
    @cadmuxe #131 mint 是通过 plaid 的 api 访问银行的数据的,不可能是未经银行许可的
    alexkuang
        142
    alexkuang  
       2021-10-29 03:53:39 +08:00
    @suxiaohuan #140
    这点确实过分了。
    明文存用户名密码有明确告知用户吗?
    你的同学都愿意用隐私换便利吗?
    gateoflunar
        143
    gateoflunar  
       2021-10-29 05:20:48 +08:00 via iPhone   ❤️ 1
    说个可能无关的。
    我们大同济当年也不允许学生这么做,然后。
    明文用 Excel 保存我们每个人的信息存 Excel 表格里,并直接泄露出去了。
    wd
        144
    wd  
       2021-10-29 06:05:13 +08:00 via iPhone
    太扯了,无知着无畏么?私自把人家内网的服务暴露公网就是大错了,更别说还爬人家数据,一点法律不懂么
    Mystery0
        145
    Mystery0  
       2021-10-29 09:11:21 +08:00 via Android
    和我已经干了 3 年的事情完全一样,我们也是走公网拉取学生的教务信息,不过我们没做密码缓存,会话如果过期了就把密码从客户端做一次登录,除了登录系统,密码只存在客户端。重要的信息比如考试信息,每一次都实时查询,不做缓存(如果查询失败走了缓存,到时候学生考试错过了会出事的)。其实学校清楚自己的东西好不好用,老师也知道。主要还是和老师打好关系,有老师来推动与学校的合作。我这个最开始是小圈子使用,后面有老师试用了觉得好用就给其他老师说了,好像让我们做一个教师端(但是我们不知道教师端怎么登陆,也不知道有些什么数据),一直没做。后面和学校谈合作,其实本来是想要接口变成正规军的,结果学校啥也不知道,就让我们帮他们做一个易班小程序,挂到学校的易班账号上,我们就做了一个阉割版放上去。从 19 年毕业到现在,一直稳定运行,我们也不主动推广(因为每年新生入校,新生群里面到处是人主动推广),学校应该也就没管。中途学校换过一次教务系统(以前用的正方,现在不知道用的啥),被我们花几天时间给拆了,学校估计也懒得管了
    Mystery0
        146
    Mystery0  
       2021-10-29 09:16:17 +08:00 via Android
    不过也可能和学校的政策以及态度有关,我校评选优秀毕业生,评的是团队内的人,就直接在介绍上写了开发者(我们项目的名字),算是一个认证吧
    olaloong
        147
    olaloong  
       2021-10-29 09:23:05 +08:00
    校内开源,需要的人自行部署即可
    sunnysab
        148
    sunnysab  
    OP
       2021-10-29 12:54:11 +08:00
    @Mystery0 哈哈哈其实我同学这边算是学校易班工作站旗下的团队,但是因为是自己做,所以不太受工作站约束,也不算很“官方”。老师想让写程序接入易班登录,我同学还给拒掉了(那个 API 是真坑)。

    今年大一入学的时候,新生群也有人主动推广哈,还有卖新生用品的那一拨人写了个“使用说明”,震惊了。

    ------

    我们现在找了学校的几个部门,在等通知,积极配合改造。
    wgsgyes
        149
    wgsgyes  
       2021-10-29 19:41:20 +08:00
    @yanzhiling2001 倒不是得罪人的问题,而是更新系统有搞砸的风险,何必没事找事。这种事情,只能找直接负责这项工作的人谈,绝大多数情况下他会感激你。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4252 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 10:12 · PVG 18:12 · LAX 02:12 · JFK 05:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.