Я создаю веб-приложение для студентов в моем университете.Они введут свою электронную почту и пароль от своих университетских учетных данных, а мое приложение возьмет их пароль, зайдет на них на веб-сайт университета и соберет некоторые данные, которые будут представлены в гораздо лучшем виде.
Это мои вопросы:
- Какой самый безопасный способ использования их учетных данных, убедитесь, что пароль всегда защищен и хеширован, а также удален с сервера, как толькопрограмма может войти в систему, используя свои учетные данные?
- Каким образом я должен защищать их учетные данные?Я не использую свое приложение фляги с базой данных, я использую их учетные данные, чтобы войти в другое место и очистить некоторые данные.
Ниже приведены файлы о том, как я сейчас это делаю.Я знаю, что это крайне небезопасно.
Таким образом, после входа пользователя в мое приложение файл rout.py показывает, как я принимаю запрос POST для инструмента скребка и записываю его в отдельный файл, содержащий глобальную переменную для имени пользователя студентов ипароль.
from flask import Flask, render_template
from flask import request
from flask import render_template, redirect, url_for, request, jsonify
import settings
import json
app = Flask(__name__)
@app.route('/')
def home():
return render_template('landing.html')
@app.route('/webScraperTool', methods =['POST'])
def webScraperTool():
settings.email = request.form['email'];
settings.password = request.form['password'];
import UniversitySiteScraperTool
return jsonify(settings.jsonObjects)
if __name__ == '__main__':
app.run(debug=True)
Файл настроек содержит глобальную переменную для учетных данных.
global email
email = ""
global password
password = ""
И, наконец, мой UniversitySiteScraperTool будет использовать глобальные переменные и использовать драйвер chrome для автоматизации входа в систему.
import pandas as pd
import os
import re
import numpy as np
import datetime
import sys
import settings
import json
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
################# DRIVER CODE PORTION #################
# Executable path ->
driver = webdriver.Chrome(executable_path=settings.dirpath + '/chromedriver')
#Url to DWORKS
url = "University Website URL"
driver.get(url)
##username and password##
usernameStr = settings.email
passwordStr = settings.password
username = driver.find_element_by_id('username')
username.send_keys(usernameStr)
password = driver.find_element_by_id('password')
password.send_keys(passwordStr)
nextButton = driver.find_element_by_css_selector('#welcome > div > div.row.btn-row > input.btn-submit')
#After I fill in their credentials, click the submit button
nextButton.click()