♪(^∀^)ノ 解决了困扰很久之后的一个有关问题
layui的后台绕过验证登录
这个文章有一定局限性,后台是layui,node
问题是这样的:
年前的时候看到了其他人写的一个网站,前端用bootstrap,后台用模版layui,以及node,数据库mongodb,功能基本齐全,与自己的技术栈是这么的相似.
于是便git了下来,结果卡在了,run之上了,运行不了,只能翻开代码查看,无果,不了了之.
又一天,自己开始想写网站了,又翻开查看其中的代码,学着使用layui,但是效果不好,使用的方法很懵,又苦于找不到后台的登录方式,又一次倒下.
但是就在今天,由于之前的一些小的不断积累,终于打开了这个网站,能够node 运行起来,发现又卡在了没有密码的路,然后可耻的我,翻开验证的地方,把验证注释掉了.
记录下这种思路给其他的萌新(对,我也是个前端的萌新),对比参照.
思路开始:
翻开 /' http://localhost:3000/admin/ '
发现被跳转到了login页面
没有密码,开始懵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'
};
传入,成功,撒花撒花...
后台的大门对我打开了,哈哈哈,即将走上...
结语:确实自己是很开心的,因为自己一直没有项目是成功的.很沮丧,然后有很多的想法一直没有办法实现,很多的因素是自己不努力,以及分心不专注,所以能够解决这些之前没有解决的问题是对自己的鼓励!
好好的研究这一个网站,完成自己的想法