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

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

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

Q&A

解決済

1回答

741閲覧

Visual Studioのフォームを使ってHttpDownloaderを使ってサーバーから指定のURLのファイルをダウンロードする際のセキュリティについて

nguyenseiji

総合スコア156

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Windows Forms

Windows Forms(WinForms)はMicrosoft .NET フレームワークに含まれる視覚的なアプリケーションのプログラミングインターフェイス(API)です。WinFormsは管理されているコードの既存のWindowsのAPIをラップすることで元のMicrosoft Windowsのインターフェイスのエレメントにアクセスすることができます。

0グッド

0クリップ

投稿2021/08/22 03:40

お世話になっております。

Windows Formsを使ってC#でHttpDownloaderを使った指定のURLからファイルをダウンロードする機能を作成したのですが
セキュリティ関連からURLはクライアント側に分からないように変更したいのですがどのような方法があるのでしょうか?

現状考えているのがURLをサーバー上に保存しておいてダウロードする時にHTTPClientを使って変数に格納を考えています
(これだと結局URLがばれますね?、、)

一応作成したコードを記載させて頂きます

c#

1 private void btnStart_Click(object sender, EventArgs e) 2 { 3 string CommonDoccumentPath = System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); 4 5 httpDownloader = new HttpDownloader(txtUrl.Text, CommonDoccumentPath+"\test\test.zip" ); 6 httpDownloader.DownloadCompleted += HttpDownloader_DownloadCompleted; 7 httpDownloader.ProgressChanged += HttpDownloader_ProgressChanged; 8 httpDownloader.Start(); 9 } 10 11 private void HttpDownloader_ProgressChanged(object sender, AltoHttp.ProgressChangedEventArgs e) 12 { 13 progressBar.Value = (int)e.Progress; 14 lblPercent.Text = $"{e.Progress.ToString("0.00")}%"; 15 lblSpeed.Text = string.Format("{0} MB/s", (e.SpeedInBytes / 1024d / 1024d).ToString("0.00")); 16 lblDownloaded.Text= string.Format("{0} MB/s", (httpDownloader.TotalBytesReceived / 1024d / 1024d).ToString("0.00")); 17 lblStatus.Text = "Downloading....."; 18 } 19 20 private void HttpDownloader_DownloadCompleted(object sender, EventArgs e) 21 { 22 this.Invoke((MethodInvoker)delegate 23 { 24 lblStatus.Text = "Finish !"; 25 lblPercent.Text = "100%"; 26 }); 27 }

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

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

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

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

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

guest

回答1

0

ベストアンサー

セキュリティ関連からURLはクライアント側に分からないように変更したいのですがどのような方法があるのでしょうか?

アプリ側で小細工しても、Fiddler とか WireShark などのキャプチャツールを使えば、URL は分かるので、クライアント側でそういう努力をするのは無駄では?

URL が分かっても問題ないようにする手段を考えるべきだと思います。Web サーバー側に認証システムを実装し、HTTPS で通信する等々。

投稿2021/08/22 05:14

編集2021/08/22 05:23
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

nguyenseiji

2021/08/22 05:46 編集

ご回答ありがとうございます。 なるほどですね、、、 現状はサーバー側でクライアントが入力したユーザー名とパスワードがデータベースと照合して 問題なかったらクライアント側に実装されているダウンロードする処理を実行するようにはしています がこのような感じの認証システムで問題ないのでしょうか
nguyenseiji

2021/08/22 05:50

現状ダウンロードしたいのはゲームアプリで 少し話が変わってしまうのですが、ハッカーなどがクライアントアプリを解読してゲームのダウンロード 先のあURLを特定したらそれを売り渡せば無料でゲームをダウンロードされてしまうという事でしょうか、、 現状考えている対策がサーバー側にあるゲームアプリのパスを動的に定期的に場所を変更する という事なのですがもっと良い方法はないでしょうか><
退会済みユーザー

退会済みユーザー

2021/08/22 05:52

> このような感じの認証システムで問題ないのでしょうか あなたの前のスレッドでもそのような質問をしているようですが、そのたび回答者からは「質問者さん独自の環境その他の事情があるでしょうから第三者には分からないことで、質問者さんが考えて決める話」というような答えが返ってきているはず。私も同じ意見です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問