2017 年想从设计转行做前端
闭门苦读半年发现没人愿意要,于是自己一个人 1 个月做了一个资讯网站,用来做找工作的案例
后来生活稳定了(靠接外包,依旧没有找到工作),也没继续更新了。现在想撤下来做点别的东西,旧站有人需要可以拿去随意使用
分为三部分,用户前台,管理后台和 api
有完整的用户投稿和后台审核功能
demo:https://www.nine00.com
源码:https://github.com/witcat/900GUIDE
1
vissssa 2018-10-29 17:15:12 +08:00
顶一个
|
2
Pi7bo1 2018-10-29 17:21:26 +08:00
萌新学习
|
3
w4n9hu1 2018-10-29 17:35:20 +08:00
设计很好看
|
4
DeWhite 2018-10-29 17:38:03 +08:00
缺个远程程序员,月包 3K 活少 事情少。
同做资讯,方向电竞。有意私聊。 |
5
746215017chen 2018-10-29 17:57:23 +08:00
@DeWhite 兼职不
|
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). |
8
witcat OP @xqin #7 额...厉害厉害 这个项目已经放弃了 bug 有兴趣的各位可以修复
不过你是怎么把重置代码拿到的....??? |
11
DeWhite 2018-10-29 19:33:34 +08:00
|
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 所对应的账号,而不是当前登陆的). 以上操作步骤 建立在自己已经创建一个小号,并且已经登陆的状态下,小号的邮箱需要可以接收邮件. |
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') }) }) ``` |
17
iyouyue 2018-10-29 19:59:49 +08:00 via iPhone
不错👍
|
18
ZiLong 2018-10-30 10:10:38 +08:00
archived?
|
19
zhutiwave 2018-10-30 11:36:45 +08:00
想问一下如何接到外包,猪八戒??
|
21
Desiree 2018-10-30 16:58:29 +08:00
设计大佬真的恐怖
|