csrf_token 的 flask 隐藏输入字段在元素窗格中可见

flask hidden input field with csrf_token is visible in elements pane

我正在制作一个烧瓶应用程序,我有点业余,尤其是在安全方面。我使用

在我的终端中创建了一个密钥
os.urandom(24)

然后我将生成的密钥放在单独的配置文件中。

config.py
import os
class Config(object):
    SECRET_KEY= os.environ.get('SECRET_KEY') or '\x01\x14#\x15\xf7\x90\xc8\xdd\x99Q}b\x82~[v'

我已经构建了一个发布数据的表单,并且添加了一个隐藏的输入字段,其中包含 flask_wtf 和 wtforms 的密钥。我已经按照说明进行操作,输入字段确实是隐藏的,里面有一把钥匙。所有笨拙的多利。在几篇文章中,我看到了完全相同的输入和输出,所以我想没关系。但是带有密钥的输入字段在元素的窗格中是可见的。人们只需要打开开发工具就可以看到它就在那里。那安全吗?秘钥不是应该深藏吗?这到底是如何运作的?还是我做错了什么?

<form action="" method="post"  >
        {{ form.hidden_tag() }}
</form>

这会产生

<form actions="" method="post">
   <input id="csrf_token" name="csrf_token" type="hidden" value="IjkyODk2NDQ5Y2I5ZTM1NWIzMGIwMjg3ODhkMDVkZjU2OTNlOGM1Nzki.YOXJcg.xepMZGrYqvcwSnXtnzGl31UhASk">
</form>

谢谢

是的,这就是应该的样子。密钥存在于隐藏字段中,也存在于用户的会话中(每个用户唯一)。因此,当用户提交表单时,会将隐藏字段的值与会话中同一字段的值进行比较。如果不匹配,提交将被拒绝。