私はWinFormsアプリケーションにWebブラウザコントロールを埋め込んでいます。ユーザーは私のものではないサイト上でいくつかの操作を行います。最後に(例えば、最後のページに)私は私のサーバ(例えばWebサービス経由)に確認を送信する必要があり、そのユーザは本当にやるべきことをしました。難読化せずに.NET Webブラウザコントロールのユーザーアクションを監視する方法は?
今のところ、アプリケーションはそのプロセス中にいくつかのデータを収集していて、それを使って奇妙なものを作った後(すなわち、あいまいさによるセキュリティ)、私のサーバーに情報を送信します。アプリケーションからサーバーに送信されるメッセージは不明瞭で、アプリケーションはC++で書かれているため、逆コンパイルして実際に送信されているものを確認するのは簡単ではありません。さらにコードを壊す可能性のあるユーザーは、ごくわずかの金額を稼ぐ機会があり、追跡するのは簡単です。そのような状況は一度も起こりません。
ソースコードがunmaintanableとなったので、私はC#を使用して書き直したいと思います。この問題はかなり明らかです。難読化されたコードでも、古いネイティブのC++バイナリよりも簡単にクラックすることができます。
"安全な"方法がありますか? Webブラウザコントロール(https接続のみ)にあるページのデジタル署名のようなものを得る可能性はありますか?私は、外部ページのユーザー資格を取って、彼に代わってサーバー側でアクションを実行する以外は、どうやってそれを行うのか考えていません。これは全く受け入れられません。
なぜコードを逆コンパイルしてしまうのでしょうか?ネットワークトラフィックをスヌーピングするだけです。 –
はい、そうです - ネットワークトラフィックを監視してクラッキングする方がはるかに簡単ですが、今のところ、コード内の「奇妙なもの」が最終的なメッセージを作成していることと正確な入力が何であるかを推測するのは苦労でしょう。いくつかのダミーメソッドといくつかの暗号化では不明瞭ですが、それはもちろんコードの中にあります。 .Netアセンブリを逆コンパイルするのは、C++バイナリの逆コンパイルやネットワークトラフィックのクラッキングよりもずっと簡単です。 – Aly
状況をもう少し説明できますか?ユーザーは何をしていますか? –