Guest User

Untitled

a guest
Apr 3rd, 2016
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.03 KB | None | 0 0
  1. # Доступ для тестеров к базе данных (MySQL) открыт из интернета, пользователь anonymous без пароля
  2.  
  3. from flask import render_template, session, request, url_for, redirect
  4. from app import app, db
  5. from app.models import User
  6. from hashlib import md5
  7.  
  8. salt = "****"
  9. flag = "*************************************"
  10.  
  11. @app.route('/', methods=['GET'])
  12. @app.route('/index', methods=['GET'])
  13. def index():
  14.     session['flag'] = "Log in to see flag"
  15.     return render_template("index.html")
  16.  
  17. @app.route('/', methods=['POST'])
  18. @app.route('/index', methods=['POST'])
  19. def login():
  20.     username = request.form['login']
  21.     password = request.form['password']
  22.     hash_password = md5((password + salt).encode()).hexdigest()
  23.     user = User.query.filter_by(login=username, password=hash_password).first()
  24.     if user is not None:
  25.         # у администратора должен быть сложный пароль! ни в коем случае не ставьте легкоподбираемые пароли, которые есть в словарях в интернете.
  26.         if username == 'admin':
  27.             session['flag'] = flag
  28.         else:
  29.             session['flag'] = "Sorry, you can't view the flag"
  30.     else:
  31.         session['flag'] = "Incorrect login or password"
  32.     return render_template("index.html")
  33.  
  34. @app.route('/reg', methods=['GET'])
  35. def reg_get():
  36.     return render_template("reg.html")
  37.  
  38. @app.route('/reg', methods=['POST'])
  39. def reg_post():
  40.     username = request.form['login']
  41.     password = request.form['password']
  42.     hash_password = md5((password + salt).encode()).hexdigest()
  43.     user = User(login=username, password=hash_password)
  44.     if User.query.filter_by(login=username).first() is not None:
  45.         session['error_message'] = "User with same login already exists"
  46.         return render_template("reg.html")
  47.     db.session.add(user)
  48.     db.session.commit()
  49.     session['error_message'] = None
  50.     return redirect(url_for("index"))
Add Comment
Please, Sign In to add comment