Coder Social home page Coder Social logo

end2end.tech's Issues

パスワードチェックエラー

問題の内容

ファイルサイズの小さいファイルをパスワードで暗号化してアップロードしたとき、パスワードを入力しなくてもダウンロードインターフェースが立ち上がり、空のファイルをダウンロードできる。

実行環境

  • macOS Ventura 13.5.1(22G90)
  • Google Chrome 116.0.5845.140(Official Build) (arm64)

再現手順

  1. ファイルサイズの小さいファイル(1バイトのtxtファイルなど)をパスワードで暗号化してアップロードする。
  2. アップロード先https://end2end.tech/f31664f5e4dfにて、パスワードを入力せず「ファイルをダウンロード」をクリックする。
  3. ダウンローダが起動し、空のファイル(サイズ0のファイル)がダウンロードされる。
  4. (Step 2で適当なパスワードを入力した場合もダウンローダが起動する)

上記リンクでは中身が「1」のテキストファイルをアップロードした。パスワード「qwertyuiop」を入力してダウンロードすることで元のファイルを入手できる。

意味のあるファイルがダウンロードされるわけではないが、意図した動作ではないと思われる。

ファイルが正しく復号されない (正当性エラー)

問題の内容

txtとjpegの2種類のファイルをアップロードしたところ、jpegの場合に壊れたファイルが復号された。

実行環境

  • macOS Ventura 13.5.1(22G90)
  • Google Chrome 116.0.5845.140(Official Build) (arm64)

再現手順

  1. JPG_Test.jpgをアップロードする。
  2. アップロード先https://end2end.tech/cf0964f53d5bからファイルをダウンロードする。

アップロードしたファイルとダウンロードしたファイルのSHA256値は以下の通り (ローカル環境にてshasum -a 256 filenameで計算)

  • アップロードファイル: 45acdb74b195a2cd159eb21603c2bb24699e31e01671c2e0dc9f6ae3876da80f
  • ダウンロードファイル: 95f758bf28d2d48783f268fba853a286f6488c1933bdfc077569b3e3b86069f1

アップロードが出来ないバグ

現在文字化けした文字列が返され、遷移後は白紙です。

image

本番環境でテストをしているのでしょうか?
おそらく環境変数等でパスを調整していないのでそうだと思いますが 危険では?

暗号化したときのデータが文字列になっている

暗号化したときのデータが文字列になっています。

理由は、Base64にソルトなどをつけた形になっているからです。

このデータをバイナリ化してアップロードすれば、ディスク使用効率が高くなると考えられます。

ローカルでのセットアップ方法について

本番環境に特化した設定が多く見受けられ、ローカル環境でのセットアップが困難です..
OSS化したいのであれば、セットアップの方法を README に書いておくと良いかもしれません。

具体的には、以下のようなコードが問題となっています。

require_once( "/home/activetk3/Config.php" );

コンテナ化をするなどして、環境に依存しない形にするとよいかもしれません。

また、開発環境では https:// へのリダイレクトは回避したほうがいいので、例えばサーバーの設定ファイルや、Cloudflareの設定項目などを使い、コードではない形で設定したほうがいいです。

ドキュメントについて

ドキュメントは現状phpで書く予定ですかね?
正直ここに時間を掛けるのは不味いので VitePress等での生成が良いと思います。

'docs.end2end.tech' を他のデプロイサービスでデプロイしたurlに向ければ早いです。

テーマ機能と英語の対応。

黒に緑のテキスト以外にダーク、ライトのテーマを付けて欲しい。UI的にアングラ感が否めない。
マルチランゲージに対応で英語を追加して欲しい。(海外圏のユーザーの為

WebTorrentの対応。

WebTorrentを使ったファイル共有を可能にするオプションを追加して欲しい。

提案: 改ざん検知機能付き共通鍵暗号の利用

AES-CBCは暗号学的な改ざん検知機能がないため、アップロードした暗号化ファイルがデータベース管理者等に改ざんされたとしても、ダウンロード時にそれを検知することができません。
AES-CBCのかわりに、AES-GCMやChaCha20-poly1305等の改ざん検知機能付き共通鍵暗号の利用を提案します。

IP制限の解除

これはOSSの問題ではなく、end2end.tech の設定に関してですが、
日本IP以外を弾くと、APIをPass等で利用することが難しくなります。
プロキシを使用すると、ファイルアップローダーの関係上ものすごい時間がかかってしまうので、IP規制の解除を提案します。

最大ダウンロード回数に小数を指定できてしまう

curl https://api.end2end.tech/upload -X POST -F [email protected] -F 'setLimitDownload=on' -F 'maxDownloadCount=1.7'

上記のように、APIでmaxDownloadCountの項目が小数の場合で叩いても正常にアップロードできてしまいます。

通常のWeb版では指定できないので、おそらくバグかと思われます。

もし万が一仕様だったら、APIドキュメントに明確な仕様を書いた方がよいかもしれません。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.