![見出し画像](https://assets.st-note.com/production/uploads/images/113223533/rectangle_large_type_2_7c4ef5f04407f10f0c1cd6997ebbec47.png?width=1200)
自動売買EA口座縛り(サーバー編)
口座縛りの方法とサーバー認証の仕組みを書いてきました。今回、認証のサーバーはどういったものがある書いてみます。
PHPのサーバー
スキルがある人は、本格的にサーバーを構築されています。PHPという言語を使い動的にユーザーからのアクセスに応答(レスポンス)を返すことが出来ます。サーバー構築のスキルが必要なので初心者プログラマーには敷居が高いかもしれません。
![](https://assets.st-note.com/img/1691852414436-xInxTbOVLL.png?width=1200)
Googleスプレッドシート
サーバー構築が難しい方は、無料で使えるGoogleのスプレッドシートを使われています。最近のEAはこの手が多いようです。スプレッドシートにユーザーの口座番号をリスト化してそのページをWEBに公開という形で使われています。レスポンスは静的です。
![](https://assets.st-note.com/img/1691852832971-Xu1tRDPsyx.png?width=1200)
WEB APIサーバー
PHPのサーバーと似たようなものですが、サーバー構築がシンプルです。こちらも動的なレスポンスを返すことが出来ます。
![](https://assets.st-note.com/img/1691853222587-45UGIUKsyE.png?width=1200)
HTTPリクエストとHTTPレスポンス
HTTPリクエストとは、簡単に言うと問い合わせです。反対にHTTPレスポンスは返答です。ユーザー側の自動売買EAがリクエストを送信し、サーバーから返ってきたレスポンスを受け取って稼働できる口座かどうか判断します。
レスポンスの静的・動的
難しい言葉が出てきましたが、静的とはいつ、だれがアクセスしても同じレスポンスが返ってくるという風に理解してください。動的は、時間やユーザ毎にレスポンスを変化させることが出来るということです。
例えば、静的レスポンスしか返せないGoogleスプレッドシートの場合、口座番号が羅列されたリストが返ってきます。このリストはEA開発者が口座番号を追加しない限り同じリストが何度も返ってきます。
![](https://assets.st-note.com/img/1691854792323-YmYnuRopRw.png?width=1200)
動的レスポンスは、ユーザーが口座番号を添えてリクエストを送った場合口座番号12345をサーバーが受け取り暗号化してレスポンスを返すことが出来ます。口座番号がリストにあれば暗号化してレスポンスを返すことが出来ます。ユーザー側の自動売買EAは暗号を解読し自分の口座番号と同じであれば自動売買EAを動かすことが出来るようなプログラムとなっています。
![](https://assets.st-note.com/img/1691854577086-wE2LSvPo4W.png?width=1200)
なぜ動的なレスポンスが必要か?口座認証は丸見えです
認証サーバーにお金をかけたくない開発者は無料で使えるGoogleスプレッドシートを使うことでしょう。サーバーに費用が掛かると言ってもクラウドサービスを利用すれば数千円/月程度です。本当に自分が開発した自動売買EAを不正ユーザーから守りたいのであれば数千円を払ってでもサーバー構築してもらいたいものです。最近は、キャッシュバック狙いのナンピンマーチン自動売買EAが横行して自動売買EAが使い捨て状態なのは否めません。
次のノートに、口座認証が破られる手段を書きます。実は口座認証のやり取りは丸見えにすることが出来ます。EA開発者は、口座認証をwininet.dllを用いて書けば安全だと勘違いしてる人が多いです。確かに、完全な口座縛りは不可能ですが、できるだけの防衛策を取って頂きたいものです。