Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

書き込み系のAPIを起動引数および環境変数によって一括で無効化できるようにする #571

Closed
aoirint opened this issue Jan 10, 2023 · 3 comments · Fixed by #895

Comments

@aoirint
Copy link
Member

aoirint commented Jan 10, 2023

内容

エンジンの設定を変更するAPIが増えてきました。

複数のクライアント(利用者)が同居するエンジンや、設定の変更を永続化していないエンジンでは、APIを介して設定を変更できないようにすることが望ましいと思います。

エンジンを読み取り専用モードにする起動引数・環境変数を追加したいです。

Pros 良くなる点

  • 複数のクライアント間で、各自の設定の変更が共有されることを防ぐ
  • 再起動すると設定が初期化されるエンジン(特別に設定していないDockerコンテナなど)で、混乱を招く設定の変更を予防する

Cons 悪くなる点

その他

@Hiroshiba
Copy link
Member

issue作成ありがとうございます!!

こちらぜひ検討したいですね!!
デフォルトの挙動はもしかしたら設定操作系APIオフの方がいいのではと感じました。
もしこの方針なら、初期実装になるrelease-0.14内で対処したいです。

@Hiroshiba
Copy link
Member

ちょっとお知恵を借りたく! @aoirint @takana-v @y-chan

辞書や設定変更など、操作できる系APIをデフォルトで無効にしようか考えています。
そもそもそうすべきか、また辞書は仕様変更になるが大丈夫かを検討したいのですが、どう思われますか👀

ローカル起動の時は変なリクエスト弾いてくれるので問題なさそうですが、サーバー起動時はちょっと危ないなと思ってます。

@y-chan
Copy link
Member

y-chan commented Feb 5, 2023

遅くなりました...!

セキュリティ的な観点から、書き込み系APIを無効化する引数および環境変数を追加すること自体は賛成です!
とはいえ、全部が無効化されると都合が悪いかもしれないので、2進数表記で各ビットに無効化する(あるいは無効化対象から外す)機能を指定する(chmod 775 xxxの4が読み、2が書き、1が実行みたいな)ようにすると都合がいいかも...?と思いました。(今後APIが増えることを考えるとあまり良くないかもですが、今までのVOICEVOXとして設定系APIが乱立していたわけでもないので、別にこれでも良いかなと思いました。)

あと、それをデフォルトにするというのはあまり良くないかも...?と思いました。
少なくとも現状では、辞書をデフォルトで無効化すれば、エディタにおいて機能が使えなくなってしまいます。(この場合、エディタ側で起動時引数および環境変数を変更すれば良いですが、デフォルトで起動するエンジンで、開発者向けでもない機能が使えないことには若干の違和感があるかもしれません)。

一般的なユーザーはエディタか、連携アプリケーションを使う方が大半だと思うので、デフォルト化するほどに緊急性や危険性が高いか、というとそうではないかなと思いました。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants