V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
witcat
V2EX  ›  分享创造

[开源]去年做的资讯网站 vue+node 后端

  •  
  •   witcat · 2018-10-29 17:10:50 +08:00 · 3350 次点击
    这是一个创建于 2216 天前的主题,其中的信息可能已经有所发展或是发生改变。

    2017 年想从设计转行做前端
    闭门苦读半年发现没人愿意要,于是自己一个人 1 个月做了一个资讯网站,用来做找工作的案例
    后来生活稳定了(靠接外包,依旧没有找到工作),也没继续更新了。现在想撤下来做点别的东西,旧站有人需要可以拿去随意使用

    分为三部分,用户前台,管理后台和 api
    有完整的用户投稿和后台审核功能

    demo:https://www.nine00.com
    源码:https://github.com/witcat/900GUIDE

    21 条回复    2018-10-30 16:58:29 +08:00
    vissssa
        1
    vissssa  
       2018-10-29 17:15:12 +08:00
    顶一个
    Pi7bo1
        2
    Pi7bo1  
       2018-10-29 17:21:26 +08:00
    萌新学习
    w4n9hu1
        3
    w4n9hu1  
       2018-10-29 17:35:20 +08:00
    设计很好看
    DeWhite
        4
    DeWhite  
       2018-10-29 17:38:03 +08:00
    缺个远程程序员,月包 3K 活少 事情少。
    同做资讯,方向电竞。有意私聊。
    746215017chen
        5
    746215017chen  
       2018-10-29 17:57:23 +08:00
    @DeWhite 兼职不
    Guozi1989
        6
    Guozi1989  
       2018-10-29 18:07:29 +08:00
    @DeWhite java 后端可接
    xqin
        7
    xqin  
       2018-10-29 19:18:19 +08:00
    @witcat 代码有 bug.

    漏洞证明: https://www.nine00.com/u/projectds

    漏洞描述: 任意用户密码重置漏洞.

    漏洞证明所用 EMAIL: [email protected] (来自于 github 仓库中 git log 里面的 email).
    witcat
        8
    witcat  
    OP
       2018-10-29 19:22:15 +08:00
    @xqin #7 额...厉害厉害 这个项目已经放弃了 bug 有兴趣的各位可以修复
    不过你是怎么把重置代码拿到的....???
    xqin
        9
    xqin  
       2018-10-29 19:23:51 +08:00
    @witcat 你猜猜看 :P
    witcat
        10
    witcat  
    OP
       2018-10-29 19:25:50 +08:00
    @xqin #9 在下才疏学浅 还请不吝赐教
    DeWhite
        11
    DeWhite  
       2018-10-29 19:33:34 +08:00
    @Guozi1989
    @746215017chen

    虽然 3K 报价不算高,但是我有意已经转向离职了。
    所以姑且是我第一次创业,所以只招收全栈。
    而且设计师,策划我都已经找好了。
    xqin
        12
    xqin  
       2018-10-29 19:33:48 +08:00
    1. 向 `/user/retrivepw` 发起请求, 参数 step:1, 以及要重置的目标 EMAIL

    2. 向 `/user/resetemail` 发起请求, 参数 step:1, 之后去自己的邮箱里面收邮件, 查看生成的随机 CODE

    3. 向 `/user/retrivepw` 发起请求, 参数 "step":3, "password":"helloworld","secret":CODE

    第一步, 在 Session 中记录要被重置的 EMAIL 地址.
    第二步, 接收再次生成的 CODE,覆盖原来的那个.
    第三步, 提交新生成的 CODE 和密码, 完成密码重置(当然重置的是第一步提交的那个 EMAIL 所对应的账号,而不是当前登陆的).

    以上操作步骤 建立在自己已经创建一个小号,并且已经登陆的状态下,小号的邮箱需要可以接收邮件.
    xqin
        13
    xqin  
       2018-10-29 19:36:18 +08:00
    @witcat 被重置密码的那个账号, 修改了个人主页的背景图片,无破坏性测试. 请勿见怪. 谢绝查水表. 谢谢.
    witcat
        14
    witcat  
    OP
       2018-10-29 19:37:58 +08:00
    @xqin #12 惊呆了...你们太可怕了 确实给我上了一课
    witcat
        15
    witcat  
    OP
       2018-10-29 19:40:21 +08:00
    @xqin #13 不会 谢谢交流 没有什么网络安全经验 我自己想破头大概也想不到能这么搞
    xqin
        16
    xqin  
       2018-10-29 19:43:31 +08:00   ❤️ 1
    第一步对应的代码:
    ```
    router.post('/retrivepw', function(req, res) {
    switch (req.body.step) {
    //第一步,生成代码并发送邮件
    case 1:

    req.session.retrivecode = randomString(15);
    req.session.email = req.body.email; //// Session 中记下被重置的 EMAIL
    req.session.cookie.expires = new Date(Date.now() + 600000);
    ```

    第二步:
    ```
    router.post('/resetemail', function(req, res) {
    switch (req.body.step) {
    case 1:
    db.users.findOne({
    _id: req.session.userid
    }, function(err, user) {
    req.session.retrivecode = randomString(15); // 重新生成 CODE, 覆盖原来的, 该 CODE 会被发到自己的邮箱里
    ```


    第三步:
    ```
    case 3:
    if (req.body.secret != req.session.retrivecode) { /// 提交收到的 CODE, 以便让 if 不成立走后面的代码

    return res.send('bad')
    }
    db.users.findOne({
    email: req.session.email ////// 取出之前 Session 中写入的 EMAIL
    }, function(err, doc) {
    doc.salt = randomString(15);
    doc.pass = md5(req.body.password + doc.salt); // 更新密码, 完成重置.
    doc.save(function(err) {
    req.session.destroy() //当成功保存,销毁 session,不可能无限进入第三步,所以同样的信息,密码只能重置一回
    res.send('ok')
    })
    })

    ```
    iyouyue
        17
    iyouyue  
       2018-10-29 19:59:49 +08:00 via iPhone
    不错👍
    ZiLong
        18
    ZiLong  
       2018-10-30 10:10:38 +08:00
    archived?
    zhutiwave
        19
    zhutiwave  
       2018-10-30 11:36:45 +08:00
    想问一下如何接到外包,猪八戒??
    witcat
        20
    witcat  
    OP
       2018-10-30 16:20:04 +08:00
    @zhutiwave #19 找几个小的外包公司合作
    Desiree
        21
    Desiree  
       2018-10-30 16:58:29 +08:00
    设计大佬真的恐怖
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2789 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 14:27 · PVG 22:27 · LAX 06:27 · JFK 09:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.