質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

8089閲覧

flask:secret keyの値

esklia

総合スコア81

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/03/21 13:51

下記コードは花の種類をサイキットラーンというライブラリを使用して判定する有名なirisデータセットをwebアプリ化した時のコードなのですが、
app.config['SECRET_KEY'] = 'oYzJehoge09C5c3tMf5FnNhogezZho'というシークレットキーをコピペしてgithubに挙げてしまいました。
常時開けているポート番号ではないとはいえ(python app.pyとしてサーバを起動しているときのみポート番号が開いている)、シークレットキーを公開してしまうことはまずいので変えたいと思っています。

flaskのチュートリアル(↓の画像)ではSECRET_KEY = 'secret key'と設定してありますが、このセッション情報を暗号化するsecret keyは任意の値で設定してよいものなのでしょうか?
イメージ説明

app.py

from flask import Flask, render_template, request, flash from wtforms import Form, FloatField, SubmitField, validators, ValidationError import numpy as np import joblib ''' predict関数・getName関数 predict関数 - nn.pyで学習して作成された学習済みモデルを読み込み、引数で受け取ったparametersを学習済みモデルに渡しています。 その結果[0]か[1]か[2]が変数predに代入されその値をreturnしています。 getName関数 - predict関数の返り値をgetName関数に渡すことで、ラベルから花の名前を返しています。''' def predict(parameters): # モデル読み込み model = joblib.load('./nn.pkl') params = parameters.reshape(1,-1) print('params',params) print('params.shape',params.shape) pred = model.predict(params) print('pred',pred) return pred # labelより花の名前取得 def getName(label): print('label',label) if label == 0: return 'Iris Setosa' if label == 1: return 'Iris Versicolor' if label == 2: return 'Iris Virginica' else: return 'Error' app = Flask(__name__) app.config.from_object(__name__) app.config['SECRET_KEY'] = 'oYzJehoge09C5c3tMf5FnNhogezZho' # http://wtforms.simplecodes.com/docs/0.6/fields.html # Flaskとwtformsを使い、index.html側で表示させるフォームを構築 class IrisForm(Form): SepalLength = FloatField("Sepal Length(cm)(蕚の長さ)", [validators.InputRequired("この項目は入力必須です"), validators.NumberRange(min=0, max=10)]) SepalWidth = FloatField("Sepal Width(cm)(蕚の幅)", [validators.InputRequired("この項目は入力必須です"), validators.NumberRange(min=0, max=10)]) PetalLength = FloatField("Petal length(cm)(花弁の長さ)", [validators.InputRequired("この項目は入力必須です"), validators.NumberRange(min=0, max=10)]) PetalWidth = FloatField("petal Width(cm)(花弁の幅)", [validators.InputRequired("この項目は入力必須です"), validators.NumberRange(min=0, max=10)]) # html側で表示するsubmitボタンの表示 submit = SubmitField("判定") @app.route('/', methods = ['GET', 'POST']) def predicts(): form =IrisForm(request.form) if request.method == 'POST': if form.validate() == False: flash("全て入力する必要があります。") return render_template('index.html', form=form) else: SepalLength = float(request.form["SepalLength"]) SepalWidth = float(request.form["SepalWidth"]) PetalLength = float(request.form["PetalLength"]) PetalWidth = float(request.form["PetalWidth"]) x = np.array([SepalLength, SepalWidth, PetalLength, PetalWidth]) pred = predict(x) irisName = getName(pred) return render_template('result.html', irisName=irisName) elif request.method == 'GET': return render_template('index.html', form=form) if __name__ == "__main__": app.run()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

flaskのチュートリアル(↓の画像)ではSECRET_KEY = 'secret key'と設定してありますが、このセッション情報を暗号化するsecret keyは任意の値で設定してよいものなのでしょうか?

はい、任意の値を設定できます。チュートリアルにあるように乱数で生成したものを設定すると安全性が高くなります。

投稿2020/03/21 23:03

mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

esklia

2020/03/23 10:46 編集

ご回答ありがとうございます。すみません、チュートリアルに記載の通りos.randomが使用できると書いてあったので、よく読むべきでした。教えていただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問