Răsfoiți Sursa

3번까지는 로그인시 리캡차 적용 안 받도록

잉여개발기 (SPDV) 2 ani în urmă
părinte
comite
4b7f13c744
3 a modificat fișierele cu 21 adăugiri și 7 ștergeri
  1. 19 5
      route/login_login.py
  2. 1 1
      route/tool/func.py
  3. 1 1
      version.json

+ 19 - 5
route/login_login.py

@@ -12,10 +12,13 @@ def login_login_2():
             return re_error('/ban')
 
         if flask.request.method == 'POST':
-            if captcha_post(flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1:
-                return re_error('/error/13')
-            else:
-                captcha_post('', 0)
+            if 'login_count' in flask.session:
+                count = int(number_check(flask.session['login_count']))
+                if count > 3:
+                    if captcha_post(flask.request.form.get('g-recaptcha-response', flask.request.form.get('g-recaptcha', ''))) == 1:
+                        return re_error('/error/13')
+                    else:
+                        captcha_post('', 0)
 
             user_agent = flask.request.headers.get('User-Agent', '')
             user_id = flask.request.form.get('id', '')
@@ -40,6 +43,11 @@ def login_login_2():
                 user_data['encode'],
                 user_id
             ) != 1:
+                if not 'login_count' in flask.session:
+                    flask.session['login_count'] = 1
+                else:
+                    flask.session['login_count'] = int(number_check(flask.session['login_count'])) + 1
+
                 return re_error('/error/10')
 
             curs.execute(db_change('select data from user_set where name = "2fa" and id = ?'), [user_id])
@@ -56,6 +64,12 @@ def login_login_2():
 
                 return redirect('/user')
         else:
+            captcha_data = ''
+            if 'login_count' in flask.session:
+                count = int(number_check(flask.session['login_count']))
+                if count > 3:
+                    captcha_data = captcha_get()
+
             return easy_minify(flask.render_template(skin_check(),
                 imp = [load_lang('login'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
                 data =  '''
@@ -66,7 +80,7 @@ def login_login_2():
                             <hr class="main_hr">
                             <!-- <input type="checkbox" name="auto_login"> ''' + load_lang('auto_login') + ''' (''' + load_lang('not_working') + ''')
                             <hr class="main_hr"> -->
-                            ''' + captcha_get() + '''
+                            ''' + captcha_data + '''
                             <button type="submit">''' + load_lang('login') + '''</button>
                             ''' + http_warning() + '''
                         </form>

+ 1 - 1
route/tool/func.py

@@ -35,7 +35,7 @@ if data_up_date == 1:
         f.write(version_list['beta']['r_ver'])
     
     if platform.system() in ('Linux', 'Windows'):
-        python_ver = sys.version_info.major + '.' + sys.version_info.minor
+        python_ver = str(sys.version_info.major) + '.' + str(sys.version_info.minor)
 
         run_list = [sys.executable, 'python' + python_ver, 'python3', 'python']
         for exe_name in run_list:

+ 1 - 1
version.json

@@ -1,6 +1,6 @@
 {
     "beta" : {
-        "r_ver" : "v3.4.6-RC3-dev207",
+        "r_ver" : "v3.4.6-RC3-dev208",
         "c_ver" : "3500361",
         "s_ver" : "3500111"
     }