コピー2019.03.17Node.jsで作成したアプリケーションを外部サーバに配置して運用する際のセキュリティ設定となります。Node.jsのアービトラージツールを想定しており、Webアプリケーションの場合は別途Webアプリケーション専用のセキュリティ設定が必要となります。サーバはCentOS7、アプリケーションはNode.js、データベースはMongoDBを前提にご説明します。スポンサーリンク目次セキュリティ対策リストセキュリティ設定の前に(一番大事なこと)重要なデータの取り扱いセキュリティ意識を持とう(一回設定して終わりじゃないよ)サーバセキュリティ設定Node.jsアプリケーションデータベースさいごに。・データベースセキュリティ設定セキュリティ設定の前に(一番大事なこと)重要なデータの取り扱いセキュリティ設定の前に気をつけたいこととして、重要なデータの取り扱いには気をつけましょう。盗まれて困るデータがない状態が最善のセキュリティ対策となります。個人情報(名前、電話番号、メールアドレスなど)やログイン情報(ユーザID、パスワード)はファイル、データベース問わず、サーバに極力配置しないことが重要です。アービトラージツールの場合は仮想通貨取引所のAPI認証情報をサーバに配置する必要がありますが、最低限必要な権限のみになっていることを確認しておきましょう。送金権限もつけるとリスクが高くなるので、買いと売りの取引権限、自分の資産情報にアクセスできる権限だけが望ましいです。ログイン情報を配置する必要がある場合は、普段使用しているパスワードを配置することがないように注意が必要です。セキュリティ対策は時間がかかるので、重要な情報が少なければその分セキュリティにかける労力を削ることができます。セキュリティ意識を持とう(一回設定して終わりじゃないよ)また、ここではセキュリティ設定を説明しますが、セキュリティに対する攻撃は日に日に進歩しており、セキュリティの性質上一回設定したら終わりというものではないので、定期的に見直すようにしましょう。Node.js(Node.js本体や利用しているライブラリ等)やシステムのバージョンは定期的に最新の安定板を利用するように心がけてください。www.kennejs.comサーバセキュリティ設定サーバセキュリティ(ここではCentOS7)については、サーバに不正アクセスされないことが重要です。不正アクセスされるとサーバを利用して別の攻撃に使用されてしまったり、重要な情報が盗まれる原因となります。具体的にはrootで作業しない(権限がrootより弱い一般ユーザを利用して作業する)、firewalldで不要なポートを塞ぐ、SSHでアクセスする必要があります。ポートについては例えばhttpだと80、httpsだと443のように決まっていて通信を行う際に必要な設定値となります。(変更もできます)httpやhttps通信を行わないのであればfirewalld設定で80、443の通信を無効にすることができます。サーバを操作する際に自分のパソコンからサーバにアクセスが必要となりますが、その際SSH通信を利用することでやりとりしている通信が暗号化されて安全になります。www.kennejs.comNode.jsアプリケーションWebアプリケーションを公開するには難易度がグッとあがりますが、アービトラージツールだけであればセキュリティ対策の優先度は高くありません。前述していますが、Node.js(Node.js本体や利用しているライブラリ等)のバージョンを定期的に最新の安定版にすること、不要なパスワード等のファイルは配置しないようにします。データベースデータベース(ここではMongoDB)についても、不正アクセスに気をつける必要があります。デフォルトのMongoDBの設定はセキュリティ的には弱いので、対策は必須となります。最低限、最新の安定版バージョンを利用すること、ポート番号の変更は簡単にできるので行っておきましょう。権限設定はやや癖がありますが、MongoDB操作になれてきたら早期に入れておきたいセキュリティ設定となります。www.kennejs.comさいごに。セキュリティスキルは必須スキルここまでがセキュリティ設定のプロセスとなります。慣れないうちは一つ一つ設定していくのは大変な作業となりますが、上にあげたどの作業も基本的なことで他でも利用シーンはよくでてくる必須スキルです。モノにしてくださいね。自作アプリケーション初心者にはさくらVPSが手軽でおすすめです。コピーケネをフォローするケネNode.jsで暗号資産アービトラージ関連記事Node.jsPassportを使用してログイン認証(Node.js)※この記事は2019/10/24に更新されました。Passport.jsを使ってNode.jsのWebアプリケーションにログイン画面(ユーザID、パスワード認証)を実装する方法を解説します。以下のような画面を実装できます。Passp...MongoDBMongoDBで有益なコマンド(group化した列をカウントする)MongoDBのコマンドリファレンスです。Manualを参照してください。find」とかで検索した方が早...Node.jsコスパで比較!初心者向けのVPSの選び方とおすすめのVPS初心者向けにVPSの選び方を紹介します。いう方向けにVPSサービスをコスト別のランキング形式で比較して...アービトラージアービトラージツールを探しているならいっそ自作してみたら(自作botのすすめ)ビットコインアービトラージをやっていて、ツールを探している人にbot自作のメリットをお伝えします。「アービトラージで取引を入力してる間に価格差がなくなっている」「価格差だけでなく、注文までできるツールがほしい」「アービトラージツールはどれ...Node.jsNode.jsで非同期処理の戻り値を利用する(Async/await)Node.jsで非同期処理の結果を処理する際にAsync/awaitを利用する方法です。個人的にはcallback関数に比べて直感的に理解しづらかったので慣れない方でも理解しやすいように呼び出し元、呼び出し先(Async関数)のサンプルを用...Node.jsブラウザ自動操作で楽したいならPuppeteerを使おうブラウザ操作の自動化に興味を持ったことはありませんか。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。ホームIT・プログラミングMongoDBプロフィールケネはじめまして、ケネです。Node.jsや仮想通貨APIトレードなどの技術情報を書いています。一人でも多くの方と「自分でもできた」感覚を共有したいので、なるべくわかりやすく、実体験ベースでのブログを心がけています。技術で自分の世界を広げましょう。不明点や質問があればお気軽にコメントください。IEO英語お問い合わせホーム検索トップサイドバープロフィールケネはじめまして、ケネです。Node.jsや仮想通貨APIトレードなどの技術情報を書いています。一人でも多くの方と「自分でもできた」感覚を共有したいので、なるべくわかりやすく、実体験ベースでのブログを心がけています。技術で自分の世界を広げましょう。不明点や質問があればお気軽にコメントください。Compassを使おう(画面からの更新で作業効率アップ)2019.11.132019.12.16アーカイブ2020年1月42019年12月12019年11月32019年10月62019年9月52019年8月72019年7月92019年6月62019年5月92019年4月112019年3月102019年2月112019年1月152018年12月82018年11月1スポンサーリンクタイトルとURLをコピーしました。