Python 如何启用reCAPTCHA
我尝试使用标记启用reCAPTCHAPython 如何启用reCAPTCHA,python,google-app-engine,recaptcha,Python,Google App Engine,Recaptcha,我尝试使用标记启用reCAPTCHA {{capture}} 预期的输出是reCAPTCHA框。相反,我看到此代码直接显示,就像页面上的代码一样,看起来像一个bug: <script type="text/javascript" src="http://api.recaptcha.net/ challenge?k=6LckUsMSAAAAAGcZR3JZw6Dusn4wKBBfZxHXh8w5"></script> <noscript> <iframe
{{capture}}
预期的输出是reCAPTCHA框。相反,我看到此代码直接显示,就像页面上的代码一样,看起来像一个bug:
<script type="text/javascript" src="http://api.recaptcha.net/ challenge?k=6LckUsMSAAAAAGcZR3JZw6Dusn4wKBBfZxHXh8w5"></script> <noscript> <iframe src="http://api.recaptcha.net/noscript?k=6LckUsMSAAAAAGcZR3JZw6Dusn4wKBBfZxHXh8w5" height="300" width="500" frameborder="0"></iframe><br /> <textarea name="recaptcha_challenge_field" rows="3" cols="40"></ textarea> <input type='hidden' name='recaptcha_response_field' value='manual_challenge' /> </noscript>
是GET处理程序,而POST具有
def post(self, view):
challenge = self.request.get('recaptcha_challenge_field')
response = self.request.get('recaptcha_response_field')
remoteip = os.environ['REMOTE_ADDR']
cResponse = captcha.submit(
challenge,
response,
CAPTCHA_PRV_KEY,
remoteip)
if cResponse.is_valid==True:
isHuman=True
else:
isHuman=False
。我应该如何进行
更新:为了继续,我还添加了一个逻辑,该逻辑只允许变量isHuman=True通过,我希望重定向到表单页面,而不是打印错误消息:
def post(self, view):
challenge = self.request.get('recaptcha_challenge_field')
response = self.request.get('recaptcha_response_field')
remoteip = os.environ['REMOTE_ADDR']
cResponse = captcha.submit(
challenge,
response,
CAPTCHA_PRV_KEY,
remoteip)
if cResponse.is_valid==True:
isHuman=True
else:
isHuman=False
self.response.out.write('captcha failed') #TO DO: redirect to form page
return
你是Django自动逃跑的受害者
尝试
{capture | safe}}
Django模板系统默认自动执行HTML转义,以防止跨站点脚本攻击之类的事情——这就是将所有HTML
转换为标记的原因
要防止出现这种情况,可以调用安全
过滤器,如:
{{capture | safe}}
脚本标记中是否有{capture}?谢谢您提供的解决方案。我已经更新了,它正在进行我尝试的下一个步骤:重定向到表单页面当isHuman=false
Lol时,我与jinja2有相同的问题。
def post(self, view):
challenge = self.request.get('recaptcha_challenge_field')
response = self.request.get('recaptcha_response_field')
remoteip = os.environ['REMOTE_ADDR']
cResponse = captcha.submit(
challenge,
response,
CAPTCHA_PRV_KEY,
remoteip)
if cResponse.is_valid==True:
isHuman=True
else:
isHuman=False
def post(self, view):
challenge = self.request.get('recaptcha_challenge_field')
response = self.request.get('recaptcha_response_field')
remoteip = os.environ['REMOTE_ADDR']
cResponse = captcha.submit(
challenge,
response,
CAPTCHA_PRV_KEY,
remoteip)
if cResponse.is_valid==True:
isHuman=True
else:
isHuman=False
self.response.out.write('captcha failed') #TO DO: redirect to form page
return