2
これはまだコードに書かれていませんが、私のウェブサイトのユーザーからYAMLを解析したいと思います。 YAMLは文字列のキー/値と文字列のリストでなければなりません。ウェブサイトのユーザーからのYAML入力を受け入れる
YAMLをテキストボックスに入力してサーバーに送信すると、PythonはYAMLを解析してデータベースに格納し、後でそれを照会できます。
上記を安全に行うために必要なことはありますか?
これはまだコードに書かれていませんが、私のウェブサイトのユーザーからYAMLを解析したいと思います。 YAMLは文字列のキー/値と文字列のリストでなければなりません。ウェブサイトのユーザーからのYAML入力を受け入れる
YAMLをテキストボックスに入力してサーバーに送信すると、PythonはYAMLを解析してデータベースに格納し、後でそれを照会できます。
上記を安全に行うために必要なことはありますか?
観察する主なものは、この場合は、YAMLファイルにコメントを抽出することができますsafe_load
(ruamel.yaml(支持YAML 1.2)、PyYAML(YAML 1.1))またはround_trip_load
(ruamel.yaml、のいずれかでYAMLを解析することです必要)。
通常のload
は、タグを削除するためにYAMLを前処理しない限り、Pythonインタプリタによってプログラムを実行するために使用できます。
免責事項:私はruamel.yamlの作者だ
これは単純な 'キーです:YAMLの[値]タイプまたはそれはあまりにもネストされた構造物が含まれていますか? – stuartnox
ネストされた構造体を含めることができます – user193661
':'で行を解析しようとすると、 ' - 'が次の行に存在する場合、それを親構造体に追加します。また、 'strip()'を使って不要なスペースを取り除いてください。 – stuartnox