2016-07-06 3 views
1

파이썬 코드 만 사용하여 Flask WTF-Form을 작성하고 작성하고 싶습니다. 그러나 양식을 파이썬 코드로 만들면 자동으로 CSRF 토큰이 생성되지 않습니다. 이 작업을 수동으로 수행 할 수있는 방법이 있습니까? 문제Flask WTF-Forms을 사용하여 CSRF 토큰을 수동으로 생성

형태 :

from flask_wtf import Form 
from wtforms import StringField 
from wtforms.validators import DataRequired, URL 

class URLForm(Form): 
    url = StringField('url', validators=[DataRequired(), URL(), Level3Url()]) 

내가 양식을 생성하기 위해 사용하는 코드는 : 당신이 CSRF 보호를 사용하지 않는 때문에

from forms import URLForm 
form = URLForm() 
if 'url' in request.args: 
    url = request.args.get('url') 
    form.url.data = url 
    if form.validate(): 
     ... 

답변

1

, 그것을 해제합니다. request.args을 데이터 소스로 전달할 수도 있습니다.

form = URLForm(request.args, csrf_enabled=False) 
+0

csrf 보호를 비활성화하지 않으려면 어떻게해야합니까? 그런 식으로 할 수있는 방법이 있습니까? – Philip

+1

유효한 토큰을 생성하여 전달하면 효과적으로 비활성화 할 수 있습니다. 클라이언트가 이전에 생성 된 토큰을 보내는 경우에만 보안을 유지하는 유일한 방법입니다. GET 요청은 데이터를 변경해서는 안되기 때문에 일반적으로 보호 할 필요가 없습니다. – davidism