forked from mrlan/EnglishPal
				
			Fix: no-random secret key generation and XSS vulnerability
							parent
							
								
									708a6a2821
								
							
						
					
					
						commit
						f01c334827
					
				| 
						 | 
				
			
			@ -56,6 +56,7 @@ def article():
 | 
			
		|||
    
 | 
			
		||||
    _articles = get_page_articles(_cur_page, _page_size)
 | 
			
		||||
    for article in _articles:   # 获取每篇文章的title
 | 
			
		||||
        article = escape(article)
 | 
			
		||||
        article.title = article.text.split("\n")[0]
 | 
			
		||||
        article.content = '<br/>'.join(article.text.split("\n")[1:])
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								app/main.py
								
								
								
								
							
							
						
						
									
										13
									
								
								app/main.py
								
								
								
								
							| 
						 | 
				
			
			@ -12,8 +12,10 @@ import Yaml
 | 
			
		|||
from user_service import userService
 | 
			
		||||
from account_service import accountService
 | 
			
		||||
from admin_service import adminService, ADMIN_NAME
 | 
			
		||||
import os
 | 
			
		||||
 | 
			
		||||
app = Flask(__name__)
 | 
			
		||||
app.secret_key = 'lunch.time!'
 | 
			
		||||
app.secret_key = os.urandom(32)
 | 
			
		||||
 | 
			
		||||
# 将蓝图注册到Lab app
 | 
			
		||||
app.register_blueprint(userService)
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +56,15 @@ def appears_in_test(word, d):
 | 
			
		|||
    else:
 | 
			
		||||
        return ','.join(d[word])
 | 
			
		||||
 | 
			
		||||
@app.before_request
 | 
			
		||||
def restrict_file_access():
 | 
			
		||||
    '''
 | 
			
		||||
    禁止直接访问/static下的数据库文件
 | 
			
		||||
    '''
 | 
			
		||||
    requested_path = request.path
 | 
			
		||||
    normalized_path = os.path.normpath(requested_path)
 | 
			
		||||
    if normalized_path.startswith('/static/') and normalized_path.endswith('wordfreqapp.db'):
 | 
			
		||||
        return abort(403)
 | 
			
		||||
 | 
			
		||||
@app.route("/mark", methods=['GET', 'POST'])
 | 
			
		||||
def mark_word():
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue