C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 再起動の方法


(過去ログ 169 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■97451 / inTopicNo.1)  再起動の方法
  
□投稿者/ 還暦 (1回)-(2021/05/17(Mon) 08:21:13)

分類:[.NET 全般] 

C# .Net を使用ししています。
フォームにボタンとテキストボックスを配置します。

ボタンを押すと再起動するようにします。
再起動だけなら Appliaction.Restart() をしようすればいいのですが

テキストボックスに '123'がはいっていたら再起動したときに
消えてしまいます。

再起動したときに入力しい再起動前の文字を表示したままにする方法を教えてください。
引用返信 編集キー/
■97452 / inTopicNo.2)  Re[1]: 再起動の方法
□投稿者/ 774RR (863回)-(2021/05/17(Mon) 08:27:03)
フツーに <application>.Propeties.Settings.Default を使えばよいのでは?

Form.Load で textBox1.Text = sampleapp.Properties.Settings.Default.Text1;
再起動ボタンなり適当なところで sampleapp.Properties.Settings.Default.Save();

引用返信 編集キー/
■97453 / inTopicNo.3)  Re[2]: 再起動の方法
□投稿者/ 還暦 (2回)-(2021/05/17(Mon) 08:43:52)
No97452 (774RR さん) に返信

テキスト文字はパスワード文字なので、
どこかに残すというのを避けようと思って
Restart で引数設定する方法があるのかと思って投稿したのですが、
他に手はないようなので、設定ファイルを使います。

以下のように対応すれば瞬間的に作成されますが
クリアされるから問題はないのでしょうか?

もちろん設定ファイルを盗み見るようなスパイソフトがあれば
対応できませんけど。

public Form1()
{
 InitializeComponent();

 textBox1.Text = Properties.Settings.Default.Form1;
 Properties.Settings.Default.Form1 = "";
 Properties.Settings.Default.Save();
}

private void button1_Click(object sender, EventArgs e)
{
 Properties.Settings.Default.Form1 = textBox1.Text;
 Properties.Settings.Default.Save();
 Application.Restart();
}

解決済み
引用返信 編集キー/
■97455 / inTopicNo.4)  Re[3]: 再起動の方法
□投稿者/ 774RR (864回)-(2021/05/17(Mon) 09:38:17)
> テキスト文字はパスワード文字なので、
そういう超重要事項は最初に書かなきゃ。

で、そのパスワードに関しての 5W(1H) がわからないと、上記方法で良い悪いの判断がつかないっス。
何を誰からなぜ保護する?

WinForms ってことは実行形式ファイルが攻撃者の手元に渡りうるってことなので、
どんな暗号・復号をつかってもデバッガで1命令づつ追えば
「ファイルに保存していない=メモリ上にしかない」
パスワード平文(ひらぶん)も攻撃者が追いかけることができるってことだ。
その意味で WinForms でパスワードを使うってのは微妙かもしれない。


とりあえず一瞬でも平文で保存するのは抵抗があるなら
https://docs.microsoft.com/ja-jp/dotnet/api/system.security.cryptography.protecteddata
で暗号化したバイトの列を
https://docs.microsoft.com/ja-jp/dotnet/standard/io/isolated-storage
で保存するとかできるかもしれない(未テスト)
※保存は暗号文でも、メモリ上に平文を展開した時点で本気の攻撃者には読まれる可能性あり
なのでここまでやる必然があるかと問われると否かもしれない(状況次第)
解決済み維持

解決済み
引用返信 編集キー/
■97456 / inTopicNo.5)  Re[3]: 再起動の方法
□投稿者/ 魔界の仮面弁士 (3098回)-(2021/05/17(Mon) 09:54:30)
No97453 (還暦 さん) に返信
> テキスト文字はパスワード文字なので、
> どこかに残すというのを避けようと思って

パスワード情報を保存するなら、Windows 資格情報を使うのはどうでしょう。
要件に合うかどうかは分かりませんけれども。
https://eternalwindows.jp/security/credman/credman00.html
https://docs.microsoft.com/ja-jp/windows/win32/api/wincred/nf-wincred-creduipromptforwindowscredentialsw
https://docs.microsoft.com/ja-jp/windows/win32/api/wincred/nf-wincred-credwritew
https://docs.microsoft.com/ja-jp/windows/win32/api/wincred/nf-wincred-credreadw
http://outofmem.hatenablog.com/entry/2014/07/03/065349


> もちろん設定ファイルを盗み見るようなスパイソフトがあれば
> 対応できませんけど。

設定ファイルは、ただの XML ファイルなので、メモ帳で簡単に読み取れますね。

暗号化するといった方法はありますが、C# のデコンパイラは
Microsoft 謹製の ILDASM.EXE をはじめ、無料の DnSpy など多数あります。
解決済み
引用返信 編集キー/
■97459 / inTopicNo.6)  Re[4]: 再起動の方法
□投稿者/ 還暦 (4回)-(2021/05/18(Tue) 09:21:38)
No97455 (774RR さん) に返信
No97456 (魔界の仮面弁士 さん) に返信

使用者が他人のIDを利用して入力・登録・編集などできないようにするものです。
なので、リセット前に設定登録して再起動したら設定削除すれば十分かと思っています。

ありがとうございます。

今更ですが、もっとセキュリティについて勉強したほうが良いというのは痛感しています。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -