2016-07-19 8 views
1

私はgmailアカウントをチェックするように設定されたラズベリーパイユニットを持っています。新しいメールが表示されたら、フェスティバルでそれを読み上げます。フェスティバルにユーザ入力を渡す

フェスティバルとは、粗いメッセージで対話します。'echo "' + str(message) + '" | festival --tts'ここで、メッセージは受信メールの内容です。

私は、誰かがそのメッセージで何か厄介なものを送信してコンピュータを破壊する可能性があると推測しています。メッセージをきれいにして、プロセスをより安全にする良い方法があるかどうか疑問です。

私は電子メールアドレスを検証できますが、検証済みの電子メール内であっても、私は適切なチェックをしたいと思います。

答えて

1

フェスティバルを呼び出すためにシェルを使用する必要があるのはなぜですか?
そうでない場合は、Python内にとどまり、lib(例:pyfestival)を使用してください。これは、おそらくもっとシンプルで、誰かがシェルコードをメッセージに挿入する危険性がないためです。

更新:あなたは別のプロセスを経て、それを呼び出すようにしたいと、そのような何か(していないがまだテスト)

from subprocess import Popen, PIPE 
p = Popen(['festival', '--tts'], stdin=PIPE) 
p.communicate(input=message) 

でそれを試してみてください上記のようquestionの答えのカスタマイズされたバージョンがある

+0

私はラズベリーパイの上にいて、私はpyfestivalをインストールする際に問題がありました。フェスティバルでスクリプトのテキストを読むことはできますが、コマンドラインツールがついています。 – Chris

関連する問題