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

CORSで、デフォルトでchrome-extension://等を許可する #1017

Open
Hiroshiba opened this issue Jan 19, 2024 · 2 comments
Open

CORSで、デフォルトでchrome-extension://等を許可する #1017

Hiroshiba opened this issue Jan 19, 2024 · 2 comments
Labels
初心者歓迎タスク 初心者にも優しい簡単めなタスク 機能向上 状態:実装者募集 実装者を募集している状態

Comments

@Hiroshiba
Copy link
Member

内容

VOICEVOX ENGINEはデフォルトでlocalhostやapp以外のドメインを弾いています。

これは大多数のサードパーティアプリに影響を与えず、かつブラウザから守る方法として有用だと思います。
一方でgoogle拡張などブラウザ拡張は影響を受けてしまい、アクセス方法が簡単じゃなくなります。
https://qiita.com/ExceptionError/items/bf66737686a564579df2

この迂回作として、chrome-extension://を問題ないものとしてデフォルトで通すというのはどうでしょうか。

Pros 良くなる点

chrome拡張を作りやすくなる

Cons 悪くなる点

セキュリティ的に問題があるか不明

実現方法

デフォルト値に追加するだけ

その他

デメリットもいろいろ考えられると思うので、もしよかったらご意見いただけると助かります。
cc @ts-klassen @aoirint @masinc

@Hiroshiba Hiroshiba added 機能向上 要議論 実行する前に議論が必要そうなもの labels Jan 19, 2024
@ts-klassen
Copy link
Contributor

良いと思います!

細かい話

理想を言えば、 manifest.json に必要な権限を明示する運用が好ましいです。
そうすれば、利用者が「どのホストに対し通信を改ざんできるのか」を認識した上で拡張機能をインストールするかの判断が理論上可能です。
しかし、利用者の大半は権限の詳細を確認しません。
であれば、拡張機能を作る際に必要な権限は小さいほうが拡張機能利用者の保護に繋がります。
VOICEVOXを使う拡張機能は "*://localhost/*" に対し全権を有することが当たり前になるよりは、
権限を明示しなくともVOICEVOXにアクセスできる方が相対的に安全です。

似たようなOriginに、 moz-extension://*, safari-extension://*, safari-web-extension://*, ms-browser-extension://* があります。

Chromeの拡張機能は理論上Edgeでも使えるのですが、Edgeのオリジンは ms-browser-extension://* なので chrome-extension://* を許可しただけでは使えないはずです。(未検証)

(主要なブラウザは盛り込んだほうが良いかも?)

@Hiroshiba
Copy link
Member Author

@ts-klassen コメントありがとうございます!!

たしかに、更に細かく権限を要求可能になると更に良いかもと思いました。
webサーバーなのでおそらくOAuth的なのも可能ではあるのが面白いですね!!

あと他のブラウザのextensionも追加できれば嬉しそうです。
とりあえずchromeに加えてあげられた3つ(edge・firefox・safari)は導入で良いかと思います!

では、タイトルを変えて正式にissue化します。
取り組んでみたい方がいらっしゃったら、ぜひ!!

@Hiroshiba Hiroshiba added 初心者歓迎タスク 初心者にも優しい簡単めなタスク and removed 要議論 実行する前に議論が必要そうなもの labels Feb 6, 2024
@Hiroshiba Hiroshiba changed the title CORSで、デフォルトでchrome-extension://を許可する? CORSで、デフォルトでchrome-extension://等を許可する Feb 6, 2024
@tarepan tarepan added the 状態:実装者募集 実装者を募集している状態 label Mar 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
初心者歓迎タスク 初心者にも優しい簡単めなタスク 機能向上 状態:実装者募集 実装者を募集している状態
Projects
None yet
Development

No branches or pull requests

3 participants