解决了困扰很久之后的一个问题

layui的后台绕过验证登录

这个文章有一定局限性,后台是layui,node

问题是这样的:
年前的时候看到了其他人写的一个网站,前端用bootstrap,后台用模版layui,以及node,数据库mongodb,功能基本齐全,与自己的技术栈是这么的相似.
于是便git了下来,结果卡在了,run之上了,运行不了,只能翻开代码查看,无果,不了了之.
又一天,自己开始想写网站了,又翻开查看其中的代码,学着使用layui,但是效果不好,使用的方法很懵,又苦于找不到后台的登录方式,又一次倒下.

但是就在今天,由于之前的一些小的不断积累,终于打开了这个网站,能够node
运行起来,发现又卡在了没有密码的路,然后可耻的我,翻开验证的地方,把验证注释掉了.

记录下这种思路给其他的萌新(对,我也是个前端的萌新),对比参照.

思路开始:
翻开 /’ ‘
发现被跳转到了login页面
图片 1

没有密码,开始懵B
ing…问博主的话不知道在不在,又特别想看,所以只好自己动手来,首先是查看验证的部分是否有写好的用户名或者是管理员,翻找了一下,没有.

第二条路:数据库,翻开数据库,MMP,哪里有导入数据库啊,你坑我呢,打开robomongodb,找了下,果然没有表.

第三条路:绕过登录,看代码
route.js,发现

  var Admin = require('../controller/admin/admin');
  app.get('/login',Admin.login);
  app.get('/register',Admin.register);
  app.get('/admin', Admin.admin);

找到admin.js

// post登录信息,校验
exports.checkUser = function(req, res) {

一连串的验证代码,无视之,顺手注释掉,找到关键代码

  else if(doc.password===password){
              console.log('success');
            //登录成功,将user保存到session中
              req.session.user = doc;
            res.json({'status':'success'});

返回网页测试,发现无效,网页返回500
一开始以为是返回的数据不对,但仔细研究一下,发现没错,那问题是什么呢,打开js以及html,仔细查找,无果,只好换一种思路,思考一下正常登录的时候是怎么成功的,发现需要session储存数据,并且有一个

exports.admin = function(req, res) {
    var isSuper='普通管理员'
    if(req.session.user.status==='2'){
        isSuper='超级管理员'
    }
    res.render('admin/index',{username:req.session.user.username,isSuper:isSuper});
};

还要传输数据的,于是翻开数据表

var  userschema=new mongoose.Schema({
username:String,
password:String,
realname:String,
phone:String,
//用户状态
status:String
});

返照这个表写入数据

var doc={
  username:'bin',
  password:'xchen',
  realname:'cxb',
  phone:'1111',
  //用户状态
  status:'2'
};

传入,成功,撒花撒花…

后台的大门对我打开了,哈哈哈,即将走上…

结语:确实自己是很开心的,因为自己一直没有项目是成功的.很沮丧,然后有很多的想法一直没有办法实现,很多的因素是自己不努力,以及分心不专注,所以能够解决这些之前没有解决的问题是对自己的鼓励!

好好的研究这一个网站,完成自己的想法

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注