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

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

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

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

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

    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  
    villivateur
        1
    villivateur  
       2021-10-28 08:10:45 +08:00 via Android   ❤️ 2
    这种事情我熟,学校就是懒政而已,你可以选择听学校的,或者假装“关闭”,具体 @pdfgo 更熟
    zcf0508
        2
    zcf0508  
       2021-10-28 08:20:52 +08:00 via Android
    没理解为什么要存密码,你存个 token 用接口后端直接去拉数据就好了。

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

    其实还是不想下架的,毕竟
    li746224
        22
    li746224  
       2021-10-28 09:05:46 +08:00
    @sunnysab #13 学校做了内网访问限制,还搞到公网的话。出事的话很刑,很有判头
    locoz
        23
    locoz  
       2021-10-28 09:07:48 +08:00
    @sunnysab #19 存内网也会经过你们手上,即使你们自己觉得自己不会作恶,学校方也不一定会这么想,只要经过你们手上就会有安全隐患,你们就会有风险。

    举个例子,假设网上突然爆出了个你们学校信息泄漏的事情,那学校方本来就知道你们做了这东西,第一时间肯定会想到数据是不是从你们这出去的,要是刚好泄漏的数据符合你们缓存的数据内容,那你们真的就是有口难辩了。
    forbreak
        24
    forbreak  
       2021-10-28 09:08:26 +08:00
    要么不做了,要么给信息化技术中。 如果出事,或者有其他原因需要找你事。《刑法》第二百八十六条,破坏计算机信息系统罪。 这个真的可以套你身上。你可以百度搜一下案例,真的会吃牢饭的。不跟你开玩笑。。。。
    sunnysab
        25
    sunnysab  
    OP
       2021-10-28 09:08:47 +08:00
    (这个编辑器回复怎么奇奇怪怪的,一不小心就提交了)

    毕竟团队写了一年多呢,用户数和访问量也还可以,但是确实替代了学校系统的大部分常用功能。
    一时间放弃这个项目,这个决定挺难做的。
    之前确实考虑简单了😐
    wanwaneryide
        26
    wanwaneryide  
       2021-10-28 09:10:49 +08:00
    前几年,试过一款软件,获取微信的扫码登录的界面,微信直接就能扫码登录了。不知道能否在小程序上做一个类似的功能,还是获取的学校的网站登录界面,这样就不用记录账号信息了,登录成功了就用 cookie 拉取数据啥的。不太懂技术,只是一个大概的想法
    locoz
        27
    locoz  
       2021-10-28 09:11:52 +08:00
    @sunnysab #25 不需要放弃啊,改本地化运行就行了,比如用 electron 搞一个。
    yolee599
        28
    yolee599  
       2021-10-28 09:12:03 +08:00
    @sunnysab #13 把内网映射出去做大死,真的能判刑
    sunnysab
        29
    sunnysab  
    OP
       2021-10-28 09:12:23 +08:00 via Android
    @forbreak 这个看着感觉像删库 /写病毒?😐


    @locoz 确实……
    mringg
        30
    mringg  
       2021-10-28 09:13:33 +08:00
    找校长 /负责信息的分管副校长聊天就好了,最终应该会有满意的解决方式。ps.找到预约渠道,提前预约好
    whywaoxaks
        31
    whywaoxaks  
       2021-10-28 09:14:54 +08:00   ❤️ 1
    学校越 low ,幺蛾子越多(可能冒犯了。。)
    我上学时,学校给新生发的学校网上服务的手册里,还会推荐一些纯学生开发的 app
    justrand
        32
    justrand  
       2021-10-28 09:14:59 +08:00
    @chotow #16 回扣啊,老兄。人家花那么多钱,搞这么烂。猜测这回扣还不得很多啊。
    iyear
        33
    iyear  
       2021-10-28 09:15:00 +08:00 via Android
    如果学校不提供统一认证平台的第三方应用接入的话,基本没办法。我们学校就是应用走 cas 然后让用户登录,这层是学校部门的,然后跳转到应用就可以从学校拿数据了。不过所有应用都要学校备案过

    只能看学校愿不愿意变革了,网络中心的人不想干就没法了
    sujin190
        34
    sujin190  
       2021-10-28 09:15:34 +08:00
    你直接存用户账户密码调学校系统,如果学校不同意小心按入侵计算机系统罪直接给你弄进去,他们要是较真还真不好说,所以还是想清楚
    forbreak
        35
    forbreak  
       2021-10-28 09:17:45 +08:00
    @sunnysab 软件类的很多违法好像都是拿这个判的。。。比如爬虫,比如拉别的厂商数据自己分析,甚至屏蔽别人的广告等等反正各种损害的其他厂家利益的。或者其他数据提供的厂家不想让你去拿这个数据你拿了。这个罪名模糊到跟寻衅滋事罪差不多了,反正软件类,不知道怎么判就用这个罪名。 删库 /写病毒这种都一定是违法的。这个是有很多你跟不不知道,或者没意识到的,法律没明确规定的违法。
    Felldeadbird
        36
    Felldeadbird  
       2021-10-28 09:22:47 +08:00
    不知道你们找信息化技术中心什么人谈话的。一般这种情况先找辅导员,或者更加上级的老师。如果能找到管理学生成绩系统的老师就更好。

    也别指望这些事情可以搞得到,毕竟成绩系统被黑了,你非常容易成为背锅的。
    BurneJones
        37
    BurneJones  
       2021-10-28 09:27:24 +08:00 via iPhone
    为了自身安全,停
    Telegram
        38
    Telegram  
       2021-10-28 09:28:06 +08:00
    @cpstar #14 是你自己没理解他的意思把,他说的也不是钱的问题啊,就是采购部门相关领导的面子问题啊
    Vegetable
        39
    Vegetable  
       2021-10-28 09:30:40 +08:00
    都在纠结什么存密码,然而这个行为本身就是灰色的,人家不让你弄你就只能停,存不存密码都无所谓。
    wuxiao2522
        40
    wuxiao2522  
       2021-10-28 09:37:47 +08:00   ❤️ 1
    发个通知:因学校信息化技术中心 balabalabala ,本小程序将于 2021 年 10 月 31 日 24 点无限期停止运营。
    Xusually
        41
    Xusually  
       2021-10-28 09:38:29 +08:00   ❤️ 5
    1 、存用户名密码
    2 、中转借口混存用户数据
    3 、等于给学校的内网服务打洞开到公网
    4 、对方明确拒绝合作

    以上,还在考虑是不是合规?不说犯罪也是违法了吧?

    数据不泄漏的话,学校只要追究就是麻烦。
    数据泄漏的话,我看刑。

    没有官方背书,早点放弃吧,最近数据安全的法规都在落地实施,别触这霉头。
    7gugu
        42
    7gugu  
       2021-10-28 09:39:17 +08:00 via iPhone
    @sunnysab 其实你让用户每次都自己输入密码就 OK 了,可以很好解决密码存储的问题。另外内网服务器是为了实现不间断访问吗?不然最好不要留代码或数据在校内,因为那样子信息化或者教务处就会有事没事来骚扰你了,虽说没啥事,但就挺烦的😂
    pusheax
        43
    pusheax  
       2021-10-28 09:53:22 +08:00
    最近数据安全法施行,学校希望自己的数据都在可控范围内,也无可厚非。
    大学的时候,做过类似的操作,但是因为网站没备案,挨了顿骂。
    这种事情是吃力不讨好的。除非有学校背书,不然出了什么事,比如信息泄漏,不论是不是你这边造成的,都会扣个屎盆子给你。
    何必呢。
    odi
        44
    odi  
       2021-10-28 10:00:20 +08:00
    赶紧关掉。放内网也不要放

    学校很客气跟你谈关掉了,,,往差了说,直接抓你们,判几年,一点都不冤

    放内网也不要搞,,,为什么非要搞这个,就想造福人类 ? 多想想自己刑不刑,干净不干净,安全不安全
    sunnysab
        45
    sunnysab  
    OP
       2021-10-28 10:04:12 +08:00 via Android
    想了想,打算两步操作:
    1. 先问问学校领导意见。我不要这个数据,所以和学校一块运营无所谓的。
    2. 转型 App ,用户自己手机上做。不过可能相当于要重写了。
    xz410236056
        46
    xz410236056  
       2021-10-28 10:04:13 +08:00
    “程序给信息化技术中心运营,学生只负责开发,都不带挂名的,并且要写信息化技术中心提的需求。”
    让他们走公对公啊。。。学生跟着掺和什么。

    自己的项目就完全开源,需要用的学生自己搭设,自己完全不管。
    pusheax
        47
    pusheax  
       2021-10-28 10:10:44 +08:00   ❤️ 2
    那个“缓存”,属于做大死。你很难说得清只是“缓存”,还是“收集”。
    国内这一块的法制建设还比较模糊,扣帽子的罪名很多。之前有人爬学校数据,判了 3 年。裁判文书网上的公开案例,不嫌麻烦可以搜一下。
    不过吧,大学来点骚操作也很正常。有一点微小的建议:
    真的下定决心要做坏事,就要绝对低调。绝口不提,并且把技术痕迹擦干净。包括不限于改考勤、改成绩、解门禁、改热水卡什么的。同时最好是为了经济利益,而非装逼。
    要不就归顺朝廷,在有明确授权的情况下,弄点社团、APP 、战队啥的。这种事情,名声越大越好。适合装逼,但是很多时候还得砸钱做。
    别模棱两可,黑不完全黑,白不完全白。到时候一抓一个准......
    hushao
        48
    hushao  
       2021-10-28 10:12:43 +08:00
    内网前提下,尤其是数据中心明确拒绝过你们的背景下,你们这个小程序的每一步包括每份数据的保存和缓存都已经是违规的了。这个没任何二话可言。
    另外这些敏感数据只有数据提供方(学校)和数据关联方(本人)才有资格查看、保存、缓存。
    感谢自己仍旧身处学校吧,学校还只是让你下架,在外面这个已经够判的了。。。
    Huelse
        49
    Huelse  
       2021-10-28 10:14:17 +08:00
    趁早关闭,如果你人脉不错的话,甚者可以在关闭的时候宣传下学校的“懒政”或其他问题,能闹到微博上就更好了,我大学时隔壁学校就发生过类似问题,最后他们是让学生组建公司,然后公司和学校合作来完成的
    Jooooooooo
        50
    Jooooooooo  
       2021-10-28 10:19:01 +08:00
    这学校肯定是多一事不如少一事

    你搞这个出事学校肯定担责

    这种东西真要搞, 肯定是学校领导出面说我们要搞这个, 然后招标再做

    你和大领导有关系有可能可以保住
    supuwoerc
        51
    supuwoerc  
       2021-10-28 10:20:04 +08:00   ❤️ 8
    刑啊,同学,这小程序开发的有点判头啊。
    jsnjfz
        52
    jsnjfz  
       2021-10-28 10:24:58 +08:00
    lz 可以看看互联网之子
    qqjt
        53
    qqjt  
       2021-10-28 10:28:40 +08:00
    要么被收编要么下架,别整其他了
    NCZkevin
        54
    NCZkevin  
       2021-10-28 10:33:03 +08:00
    曾经在学校网络中心当过助理,你目前这种行为在我们那是绝对不允许的,之前就出过学生自己写的程序缓存信息,结果数据库放阿里云,还是弱密码,泄漏了全校电话信息。。。
    虽然学校内部软件都是外包的写的很垃圾,但一般放在内网,并且每年也采购了各种防火墙和软件,也有人看着数据,安全性大概率比个人开发要高的。
    一个解决方案是:找中心合作,服务放内网。
    Rheinmetal
        55
    Rheinmetal  
       2021-10-28 10:42:16 +08:00
    学校招安的条件已经挺可以了
    理论上学生信息是重点保护对象、
    要不是学生开发 学校放你们一马 不进去不错了
    ch2
        56
    ch2  
       2021-10-28 10:54:19 +08:00
    建议接受招安
    zzztongxue
        57
    zzztongxue  
       2021-10-28 10:55:02 +08:00
    我毕业两年,之前大三做的一款校园助手产品现在还在运营中。楼主说的问题,我都遇到过,学校的 it 部门拿着工资,多一事不如少一事,我们存在的意义就是给他们增加工作量,所以他们并不感冒。还是加个 v 交流交流吧,太难了。el90b25nX3h1ZQ==
    horse1
        58
    horse1  
       2021-10-28 11:04:05 +08:00
    个人去面对机构确实乏力
    有两个非技术向的思路仅供参考
    1. 有没有技术向的社团,由社团整体以及负责社团管理的老师参与交涉
    2. 找自己学院的院长或者老师,问询意见,由学院发起负责,可以将这种项目作为一种实际案例提供给学生实践
    这两点还能保证在你毕业之后仍有团队维护这个项目
    最后,如果学校的校风特别不适合搞这些的话就算了吧
    xianyu191031
        59
    xianyu191031  
       2021-10-28 11:11:47 +08:00
    个人建议 不要淌浑水,你既然不是校内相关人员,最好就不要插手相关系统的工作。一来别人信不过你,二来责任落实没有定论。你有优化系统做项目的想法,不如搞个小团队做成解决方案,能搞成的话不管是做成开源方案 还是注册主体对外推广销售,都是对你最优的。尽量不要站在学生的角度看这个问题
    libook
        60
    libook  
       2021-10-28 11:19:26 +08:00   ❤️ 1
    按照数据安全法和个人信息保护法来说,你朋友的这个程序确实问题很多。

    按照法律的相关规定,学生、小程序、教务系统三方中,每组双方之间都要达成数据的授权协议,即学生和教务系统、学生和小程序、小程序和教务系统,其中有问题是小程序和教务系统,只要学校不审批同意,小程序就无权获取、使用教务系统的信息。当然最终还是以法院判决结果为准,现在只是说小程序在这个案件里是处于绝对劣势的。

    其余的就是网络安全和数据安全方面如何做到国家要求的程度,这个得参考相关国家或行业标准,如 GB/T 22239-2019 ,数据也要做加密、脱敏、匿名化等处理,这些个人做会比较难,一般托管在大平台上问题也不大,但你要知道公安和通管是有监督和执法权的,他们随时可能提出检查要求,特别是这个是跟教育领域有关,会比较敏感。

    你可以考虑做个本地版本,比如油猴脚本,或者开源的客户端,把服务器拿掉,所有数据都在本地存储,这样一方面是去中心化的学校管不了,另一方面也消除了大部分安全风险。
    a1gslyghmqnl
        61
    a1gslyghmqnl  
       2021-10-28 11:20:01 +08:00
    我不信他们学校只有你同学一个人做学生服务的。也就是说其他人一样在自行保存用户的学号和密码。这种事太扯淡了。最好的解决方案是他们给学校做一个 oauth 平台。
    soulmine
        62
    soulmine  
       2021-10-28 11:21:00 +08:00
    冷知识 建议 lz 看看爬虫是什么定罪的
    coosir
        63
    coosir  
       2021-10-28 11:25:19 +08:00   ❤️ 5
    已经违法了,不知道你在坚持什么……
    ysc3839
        64
    ysc3839  
       2021-10-28 11:26:14 +08:00
    我校也有人搞过类似微信小程序,也被学校发文警告了。不过开发团队把代码开源了自证清白,加上很多同学支持,学校把他们招安了。现在的情况是有负责的老师进行管理,服务器由学校免费提供,好像是没有工资。
    remarrexxar
        65
    remarrexxar  
       2021-10-28 11:27:36 +08:00
    内网数据在外网做存储,这是怎么都不会允许的
    crab
        66
    crab  
       2021-10-28 11:29:03 +08:00
    @yanzhiling2001 出 BUG 等问题的时候就知道区别了。
    thtznet
        67
    thtznet  
       2021-10-28 11:30:28 +08:00
    @yanzhiling2001 不能说这是对错的,在国内的环境里可能是最优解的,但这就是非常典型的中国式思维,所以在软件的大部分领域我们国家的基础设施建设都要仰人鼻息。
    shanghai1998
        68
    shanghai1998  
       2021-10-28 11:38:55 +08:00
    关掉吧

    确实存在分险,这个分险谁承担?
    盈利吗?盈利了出现问题直接进去,不盈利何必折腾

    或者直接脱敏开源,谁需要自己玩
    seeyisee
        69
    seeyisee  
       2021-10-28 11:41:02 +08:00
    感觉这个小程序学生也不会使用的很频繁啊,课程表也不用每天看,成绩就更不用说了。消费信息指的是饭卡消费?谁没事查这个干啥啊?
    sunnysab
        70
    sunnysab  
    OP
       2021-10-28 11:46:38 +08:00 via Android
    @seeyisee 现在用户量挺大的,实名用户数覆盖两个年级。日打开 20k ,主要是查课表。查成绩 /电费 /消费这种确实按理说不会很多,但是放到小程序上之后,大家总会想去点一下。哈哈哈。


    @ysc3839 羡慕,我们也没有工资。
    @coosir
    siyi412009
        71
    siyi412009  
       2021-10-28 11:47:21 +08:00
    一开始谈崩那会学校那边是找不到苦力给他打工了?到现在找到苦力给他打工了就想把你这边了解了是吧
    首先你同学毕业了没 毕业了又没利益牵扯 他也没拿公众号盈利 法律层面为啥会违规我不懂
    PrinceofInj
        72
    PrinceofInj  
       2021-10-28 12:11:36 +08:00 via Android
    你这是面向监狱开发。机关单位那么多难用的系统,你以为没有人能改进一下么?为啥没人开发一个第三方的去优化呢?
    peanut996
        73
    peanut996  
       2021-10-28 12:18:40 +08:00 via Android
    建议本地化😅
    Patrick95
        74
    Patrick95  
       2021-10-28 12:27:58 +08:00
    这熟悉的剧情…曾经也遇到过类似的事
    BeautifulSoap
        75
    BeautifulSoap  
       2021-10-28 12:38:49 +08:00   ❤️ 6
    关得非常合理,光是在自己数据库里存学生们的账号密码这点就直接出局了,更何况你还缓存了学生们的成绩数据

    你说这是为了模拟登陆、优化性能技术上必须的,但是实际上这行为,说你是在违法收集学生们的账号密码信息,成绩信息你能反驳吗?

    我是能理解 lz 的,作为学生年轻气盛想要做出点东西来往往不会掺杂太多邪念,但是学生思维的局限性往往不在技术方面,而在于做事太过欠缺考虑了。

    别的不说,lz 做这项目的时候有考虑过安全防护吗?这里说的安全防护不是指你顶楼说的什么密码这么简单的东西,而是你把一个内网服务直接给暴露到公网上,考虑过你们写的服务或者你们服务器如果有安全漏洞被入侵了之后黑客直接获取到大量学生成绩信息的危险吗? 到时候你们团队有觉悟背起责任轻则退学重则坐牢吗?

    啥,“我们会做好安全防护的”,说真的安全防护这事即便是大公司的专门团队都头痛,学生的团队你确定真的能做得非常好吗?而且安全漏洞有时候还不是程序本身,忘了设 ip 限制,忘了自动 ban ip 这些人为因素很容易就考虑遗漏。

    而且问题最大还不光于此,你只考虑了技术安全因素,但考虑到了人为安全因素吗?你的服务器数据库是谁掌握的,谁有管理权,都是学生组建的团队如何保证和团队里的学生不会为了自己私欲偷偷连上服务器、缓存、数据库去偷看别人的信息或者盗用别人账号篡改选课信息之类的,而且团队成员自己轻车熟路抹掉脚印后怎么查?到时候整个团队被搞到警察局里去慢慢审你确定顶得住?如果你服务器在学校里怎么防止有其他人直接社会工程学跑你电脑前直接入侵?

    这些问题 lz 和团队有仔细想过吗?
    ryh
        76
    ryh  
       2021-10-28 12:41:56 +08:00
    赶紧招安吧,分分钟他们都能搞得你都毕不了业
    erlangshanxia
        77
    erlangshanxia  
       2021-10-28 12:52:59 +08:00
    我当年做这个学校也没说什么呀。。归根结底是学校不行。
    yangyaofei
        78
    yangyaofei  
       2021-10-28 13:00:47 +08:00
    觉得改成 electron 挺好, 每个人自己数据自己存, 不存在问题
    06_taro
        79
    06_taro  
       2021-10-28 13:09:48 +08:00
    站在学校计网中心的角度上讲,采纳你朋友(?)这个系统的后果:

    1. 学生们纷纷表示新系统很好,你朋友真厉害写出这个系统;
    1.1 比之前学校的破系统好用多了,学校原来什么水平花钱搞的东西还没学生写的好;
    2. 中心主任评职称的时候看看这套系统,貌似也不好意思写到工作总结里,毕竟原系统也不是不能用,现在这个新玩意还得靠老系统继续用,方便学生什么的上面的大人物是不会明白的;
    3. 万一出问题,就算把你朋友拿出来顶,自己的位子大概会保不住。如果遇到大问题,譬如学校系统本身严重漏洞但是全在内网,从你这个代理节点发现了这个漏洞然后作为跳板进去把学校整个系统爆破了,就算是校长都不一定扛得住。

    这个情况下,如果不是非常有魄力愿意推进一些学生工作的人,谁会同意采纳你朋友这个系统?

    所以此前学校再刚开发的时候提出的两个选项,首先先解决 1/2 点里面论功的问题。至于近期又要求停止运营,大概率是看了看你朋友这个系统,安全风险太大,第 3 点里出事的情况根本扛不过来,连招安的意义都没有了。

    计网中心的角度看这个问题就是这样。

    至于你朋友自己的角度,技术上前面建议已经很多了。另外再说一句,没有官方支持靠抓数据做的这个系统,不转型的话,该放弃可以及时放弃,最多作为一个个人练手的玩玩就够了。作为学生现在可能觉得可惜,沉没成本花了不少,但是毕业出来一年再回来看这个系统,大概率你朋友会不屑把它写进简历里……
    sunnysab
        80
    sunnysab  
    OP
       2021-10-28 13:18:35 +08:00
    @BeautifulSoap 技术上的安全这一块,我同学目前做的是:服务器只开放 443 和 22 ,服务器开日志,密码全部用哈希值随机生成。数据库不暴露在公网,需要使用 SSH 隧道去连接。

    非技术的安全这块,目前是两个人有密码,确实是个问题,你做再多也没法让别人相信你——何况毕业之后就无法控制了。之前想法是,尽量提高操作成本,至少不能让啥技术不懂就有邪念的得逞。确实欠妥。


    @06_taro 谢谢!
    ipwx
        81
    ipwx  
       2021-10-28 13:20:09 +08:00
    此前,他们在刚开发这款小程序时向信息化技术中心提出过合作,当时对方拒绝并提出两个选项:

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

    ----

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

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

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

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

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

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

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

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

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

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

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

    ----

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

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

    ----

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

    ----

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

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

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

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

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

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

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

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

    这样不会也很刑吧
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2840 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 12:58 · PVG 20:58 · LAX 05:58 · JFK 08:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.