码迷,mamicode.com
首页 > Web开发 > 详细

一百一十八:CMS系统之短信验证码加密和js代码混淆

时间:2019-11-28 23:09:35      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:inter   不能   rev   comm   没有   enc   pre   iges   import   

 

前面的方法存在安全隐患,只要知道发送短信验证码的接口就可以无限触发发送短信验证码

技术图片

改用post请求,在前端加scrf_token验证,后面需要使用到md5加密,引入md5

技术图片

技术图片

from apps.forms import BaseForm
from wtforms import StringField
from wtforms.validators import regexp, InputRequired
import hashlib


class SMSCaptchaForm(BaseForm):
salt = ‘aldksfhnldksfndsf‘
telephone = StringField(validators=[regexp(r‘1[345789]\d{9}‘, message=‘请输入正确的手机号‘)])
timestamp = StringField(validators=[regexp(r‘\d{13}‘)])
sign = StringField(validators=[InputRequired()])

def validate(self):
result = super(SMSCaptchaForm, self).validate()
if not result:
return False
telephone = self.telephone.data
timestamp = self.timestamp.data
sign = self.sign.data

# md5(timestamp+telephone+salt)
# md5要求必须传bytes类型的字符串
sign2 = hashlib.md5((timestamp + telephone + self.salt).encode(‘utf-8‘)).hexdigest()
return sign == sign2

技术图片

// 短信验证码
$(function () {
$(‘#sms-captcha-btn‘).click(function (event) {
event.preventDefault();
var self = $(this);
var telephone = $("input[name=telephone]").val();
console.log(telephone);
if(!(/^1[345789]\d{9}$/.test(telephone))){
xtalert.alertInfoToast(‘请输入正确的手机号‘);
return;
}
var timestamp = (new Date).getTime();
var sign = md5(timestamp + telephone + "aldksfhnldksfndsf");

// 改为post请求
ajax.post({
‘url‘: ‘/common/sms_captcha/‘,
‘data‘: {
‘telephone‘: telephone,
‘timestamp‘: timestamp,
‘sign‘: sign
},
‘success‘: function (data) {
if(data[‘code‘] == 200){
xtalert.alertSuccessToast(‘验证码发送成功‘);
alert(‘验证码为:‘ + data[‘message‘]); // 由于没有真实的发送验证码,这里弹窗提示验证码
self.attr(‘disabled‘, ‘disabled‘); // 给按钮设置属性,不允许点击
// 倒计时60秒
var timeCount = 60;
var timer = setInterval(function () {
timeCount --;
self.text(timeCount);
if(timeCount <= 0){
self.removeAttr(‘disabled‘); // 移除不能点击属性
clearInterval(timer);
self.text(‘发送验证码‘)
}
},1000)
}else{
xtalert.alertInfoToast(data[‘message‘])
}
}
});
});
});

技术图片

以上js,在访问网站的时候,可以拿到源码,也就可以分析出加密方式

下面对js混淆,地址:https://www.sojson.com/jscodeconfusion.html

把function(){}里面的js打复制过来压缩,混淆

技术图片

技术图片

技术图片

粘贴到js代码里面

技术图片

技术图片

 

 

一百一十八:CMS系统之短信验证码加密和js代码混淆

标签:inter   不能   rev   comm   没有   enc   pre   iges   import   

原文地址:https://www.cnblogs.com/zhongyehai/p/11954323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!