Ejemplo n.º 1
0
 def get(self):
     return_to = request.referrer
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template('front/front_signin.html',
                                return_to=return_to)
     return render_template('front/front_signin.html')
Ejemplo n.º 2
0
def login_in():
    if request.method == 'GET':
        if session.get(FRONT_USER_ID):
            return redirect(url_for('front.index'))
        else:
            return_to = request.referrer
            if return_to and return_to!=request.url \
                    and return_to != url_for('front.signup') and safeutils.is_safe_url(return_to):
                return render_template('front/front_login.html',
                                       return_to=return_to)
            return render_template('front/front_login.html')
    else:
        form = LoginForm(request.form)
        # print(form.data)
        if form.validate():
            telephone = form.telephone.data
            password = form.password.data
            remember = form.remember.data
            user = FrontUser.query.filter_by(telephone=telephone).first()
            if user and user.check_password(password):
                session[FRONT_USER_ID] = user.id
                if remember:
                    session.permanent = True
                return resful.success()
            else:
                return resful.params_error('手机号或密码错误')
        else:
            return resful.params_error(form.get_error())
Ejemplo n.º 3
0
 def get(self):
     # request.referrer【获取上一个页面】
     return_to = request.referrer
     if return_to and return_to != request.url and safeutils.is_safe_url(return_to):
         return render_template('front/front_signup.html', return_to=return_to)
     else:
         return render_template('front/front_signup.html')
Ejemplo n.º 4
0
 def get(self):
     return_to = request.referrer
     if return_to and return_to != request.url and return_to != url_for(
             "front.signup") and safeutils.is_safe_url(return_to):
         return render_template('front/front_signin.html')
     else:
         return render_template('front/front_signin.html')
Ejemplo n.º 5
0
 def get(self):
     return_to = request.referrer
     if return_to and return_to != request.url and is_safe_url(return_to):
         return render_template('forum/fuser_signin.html',
                                return_to=return_to)
     else:
         return render_template('forum/fuser_signin.html')
Ejemplo n.º 6
0
 def get(self):
     return_to = request.referrer
     if all([return_to, return_to != request.url, is_safe_url(return_to)]):
         return render_template('forum/fuser_signup.html',
                                return_to=return_to)
     else:
         return render_template('forum/fuser_signup.html')
Ejemplo n.º 7
0
 def get(self):
     return_to = request.referrer  # 没注册情况下,在首页做一些需注册的操作时,跳转到首页注册
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template("front/front_signup.html",
                                return_to=return_to)
     else:
         return render_template("front/front_signup.html")
Ejemplo n.º 8
0
 def get(self):
     return_to = request.referrer  #获取客户端从哪个页面连接过来的(登陆后还返回哪里页面)
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template('front/front_signup.html',
                                return_to=return_to)
     else:
         return render_template("front/front_signup.html")
Ejemplo n.º 9
0
 def get(self):
     return_to = request.referrer  #重新登录后,回到跳转之前的页面
     if return_to and return_to !=request.url and \
       safeutils.is_safe_url(return_to) and return_to!=url_for('front.regist'):
         return render_template('front/front_login.html',
                                return_to=return_to)
     else:
         return render_template('front/front_login.html')
Ejemplo n.º 10
0
 def get(self):
     return_to = request.referrer
     if return_to and return_to != request.url and return_to != url_for(
             "front.signup") and safeutils.is_safe_url(return_to):
         #之前页面有且部位当前也页面且不为注册页面
         return render_template("front/front_signin.html",
                                return_to=return_to)
     else:
         return render_template("front/front_signin.html")
Ejemplo n.º 11
0
 def get(self):
     return_to = request.referrer
     # print(return_to,request.host_url) http://127.0.0.1:8000/front/ http://127.0.0.1:8000/
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template('front/front_signup.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signup.html')
Ejemplo n.º 12
0
 def get(self, message=None):
     return_to = request.referrer
     if return_to and return_to != request.url and return_to != url_for(
             'front.signup') and safeutils.is_safe_url(
                 'front/front_signin.html'):
         return render_template('front/front_signin.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signin.html')
Ejemplo n.º 13
0
 def get(self):
     return_to = request.referrer
     if return_to and return_to != request.url and return_to != url_for(
             'front.signup') and safeutils.is_safe_url(return_to):
         print(True)
         return render_template('front/front_signin.html',
                                return_to=return_to)
     print(False)
     return render_template('front/front_signin.html')
Ejemplo n.º 14
0
 def get(self):
     return_to = request.referrer
     # 如果从注册页面来的,登陆完就不要返回回去了
     if return_to and return_to != request.url and return_to != url_for(
             'front.signup') and safeutils.is_safe_url(return_to):
         return render_template('front/front_signin.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signin.html')
Ejemplo n.º 15
0
 def get(self):
     return_to = request.referrer
     # 如果return_to 存在 && 不等于当前的url && 不等于注册页面的url && 安全
     if return_to and return_to != request.url and return_to != url_for(
             'front.signup') and safeutils.is_safe_url(return_to):
         return render_template('front/front_signin.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signin.html')
Ejemplo n.º 16
0
 def get(self):
     # 获取之前的页面, 登陆后回到之前页面
     return_to = request.referrer
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template('front/front_signup.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signup.html')
Ejemplo n.º 17
0
 def get(self):
     return_to = request.referrer  # 获得上一个页面的地址
     # 验证地址安全, 地址存在,而且不等于页面地址而且安全验证通过
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template('front/front_signup.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signup.html')
Ejemplo n.º 18
0
 def get(self):
     return_to = request.referrer  #获取上一个页面url
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         #上一个页面的url存在,且不等于当前的注册页面,且是安全的
         return render_template("front/front_signup.html",
                                return_to=return_to)
         #将上一个页面的url放到html里面,便于ajax取出
     else:
         return render_template("front/front_signup.html")
Ejemplo n.º 19
0
 def get(self):
     if config.FRONT_USER_ID in session:
         return redirect(url_for('front.index'))
     return_to = request.referrer
     if return_to and return_to != request.url and return_to != url_for(
             'front.signup') and safeutils.is_safe_url(return_to):
         return render_template('front/front_login.html',
                                return_to=return_to)
     else:
         return render_template('front/front_login.html')
Ejemplo n.º 20
0
 def get(self):
     # 获取来自于上一级跳转的路径,实现记录上一次地址,实现登录跳转功能
     return_to = request.referrer
     # 从signup 直接过来 referrer属性不存在 有些恶意攻击会在signup后面加上referrer参数,来跳转到其它页面
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template('front/front_signup.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signup.html')
Ejemplo n.º 21
0
 def get(self):
     # 上一次访问的url地址
     return_to = request.args.get("return_to")
     # 上一次访问地址存在、上一次访问地址不是当前url地址、上一次访问地址是安全的(是指同一个域名或者IP地址)
     if return_to and return_to != request.url and return_to != url_for(
             "front.signup") and safeutils.is_safe_url(return_to):
         # 注册成功之后就跳转到上一次访问的地址
         return render_template("front/front_signin.html",
                                return_to=return_to)
     else:
         return render_template("front/front_signin.html")
Ejemplo n.º 22
0
 def get(self):
     # 网页跳转功能
     # 后台判断是否是跳转过来的而非直接方位,如果是,则在模板页面加一个id="return-to-span" 的span
     return_to = request.referrer
     # 判断return to 是否为安全
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         return render_template('front/front_signup.html',
                                return_to=return_to)
     else:
         return render_template('front/front_signup.html')
Ejemplo n.º 23
0
 def get(self):
     return_to = request.referrer[15:].split('?')[0]
     onlogin = request.args.get('onlogin')
     if (return_to and return_to != url_for('front.signup')
             and safeutils.is_safe_url(return_to)
             and return_to != url_for('front.signin')):
         return render_template('front/signin.html',
                                return_to=return_to,
                                onlogin=onlogin)
     else:
         return render_template('front/signin.html')
Ejemplo n.º 24
0
 def get(self):
     # 上一次访问的url地址
     return_to = request.referrer
     # 上一次访问地址存在、上一次访问地址不是当前url地址、上一次访问地址是安全的(是指同一个域名或者IP地址)
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         # 注册成功之后就跳转到上一次访问的地址
         return render_template("front/front_signup.html",
                                return_to=return_to)
     else:
         return render_template("front/front_signup.html")
Ejemplo n.º 25
0
    def get(self):
        # ⚠️ referrer引用:可以知道上一个页面,本页面来源
        return_to = request.referrer

        # return_to 存在 并且不等于当前页面的url 并且
        if return_to and return_to != request.url and safeutils.is_safe_url(
                return_to):
            return render_template('front/front_signup.html',
                                   return_to=return_to)
            # return render_template('front/login.html',return_to=return_to)
        else:
            return render_template('front/front_signup.html')
Ejemplo n.º 26
0
    def get(self):
        return_to = request.referrer  #返回上一个页面

        if return_to and return_to != request.url \
                and re.search(url_for('front.signup'), return_to) is None\
                and re.search(url_for('front.updatepwd'), return_to) is None\
                and safeutils.is_safe_url(return_to) :

            return render_template('front/front_signin.html',
                                   return_to=return_to)
        else:
            return render_template('front/front_signin.html')
Ejemplo n.º 27
0
 def get(self):
     # 获取上一个页面的url
     return_to = request.referrer
     # referrer不一定会存在,比如直接访问的登录页面
     # 并且它不等于登录页面的url
     # 并且这个referre是个安全的url,防止恶意者去伪造它,被跳转到其它恶意的网站
     if return_to and return_to != request.url and safeutils.is_safe_url(
             return_to):
         # 把这个url传入到模板中
         return render_template('front/front_signup.html',
                                return_to=return_to)
     return render_template('front/front_signup.html')
Ejemplo n.º 28
0
def changepwd():
    if request.method == 'GET':
        return_to = request.referrer
        if return_to and return_to != request.url and safeutils.is_safe_url(
                return_to):
            return render_template('front/front_changepwd.html',
                                   return_to=return_to)
        else:
            return render_template('front/front_regist.html')
    else:
        user = g.front_user
        oldpwd = request.form.get('oldpwd')
        if user.check_password(oldpwd):
            form = ChangePwdForm(request.form)
            if form.validate():
                newpwd = form.newpwd.data
                user.password = newpwd
                db.session.commit()
            else:
                return restful.paramserror(message=form.get_errors())
        else:
            return restful.paramserror(message='原始密码输入错误')
        return restful.success()
Ejemplo n.º 29
0
 def post(self):
     form = SignupForm(request.form)
     if form.validate():
         telephone = form.telephone.data
         username = form.username.data
         password = form.password1.data
         user = FrontUser(telephone=telephone,
                          username=username,
                          password=password)
         db.session.add(user)
         db.session.commit()
         session[config.FRONT_USER_ID] = user.id
         return_to = request.referrer
         if return_to and return_to != request.url and return_to != url_for(
                 'front.login') and safeutils.is_safe_url(return_to):
             referrer = return_to
             data = {'referrer': referrer}
             return restful.success(data=data)
         else:
             return restful.success()
     else:
         print(form.get_error())
         return restful.params_error(message=form.get_error())
Ejemplo n.º 30
0
 def get(self):
     return_to = request.referrer
     # print('return_to: {}'.format(return_to))
     # return_to为跳转至此页面前的url,其内容会插入到页面中隐藏的span标签中,此处判断保证
     # 1. return_to 不为空或None
     # 2. return_to 不为当前页
     # 3. return_to 不为注册页
     # 4. return_to 为安全url
     if return_to and return_to != request.url and return_to != url_for('front.signup') and safeutils.is_safe_url(return_to):
         return render_template('front/front_signin.html', return_to=return_to)
     else:
         return render_template('front/front_signin.html')
Ejemplo n.º 31
0
 def get(self):
     return_to = request.referrer
     if return_to and return_to != request.url and safeutils.is_safe_url(return_to):
         return render_template('front/front_signup.html', return_to=return_to)
     else:
         return render_template('front/front_signup.html')