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) |     _articles = get_page_articles(_cur_page, _page_size) | ||||||
|     for article in _articles:   # 获取每篇文章的title |     for article in _articles:   # 获取每篇文章的title | ||||||
|  |         article = escape(article) | ||||||
|         article.title = article.text.split("\n")[0] |         article.title = article.text.split("\n")[0] | ||||||
|         article.content = '<br/>'.join(article.text.split("\n")[1:]) |         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 user_service import userService | ||||||
| from account_service import accountService | from account_service import accountService | ||||||
| from admin_service import adminService, ADMIN_NAME | from admin_service import adminService, ADMIN_NAME | ||||||
|  | import os | ||||||
|  | 
 | ||||||
| app = Flask(__name__) | app = Flask(__name__) | ||||||
| app.secret_key = 'lunch.time!' | app.secret_key = os.urandom(32) | ||||||
| 
 | 
 | ||||||
| # 将蓝图注册到Lab app | # 将蓝图注册到Lab app | ||||||
| app.register_blueprint(userService) | app.register_blueprint(userService) | ||||||
|  | @ -54,6 +56,15 @@ def appears_in_test(word, d): | ||||||
|     else: |     else: | ||||||
|         return ','.join(d[word]) |         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']) | @app.route("/mark", methods=['GET', 'POST']) | ||||||
| def mark_word(): | def mark_word(): | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue