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

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

ただいまの
回答率

90.48%

  • Ruby

    7975questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • ビルド

    59questions

    ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます

Rubyで作ったプログラムのリリース方法について

解決済

回答 5

投稿

  • 評価
  • クリップ 0
  • VIEW 737

snozaki

score 12

前提

Ruby初心者です。

やりたい事

Rubyソースコードを第三者に見られないようにする

質問内容

現在、業務用WEBアプリケーションをRubyで構築しています。
Rubyで作ったプログラムのリリースについて不明点があるため教えて下さい。
構築したプログラムは社内サーバーにリリースする予定ですが、
第三者がプログラムソースを見たり、改変できないようにする仕組みが必要です。

javaやVBなどの言語はビルドし実行ファイル化することでソースコードを
第三者が見れないようになりますが、Rubyでも同様の事が可能でしょうか?
いろいろ選択肢をアドバイス頂ければ助かります。

宜しくお願い致します。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 5

checkベストアンサー

0

ruby ソース 保護で検索したら RubyEncoder  というソフトが見つかりました。
http://rubyencoder.jp/overview/

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/10 17:31

    情報ありがとうございます。
    こういうものを探していました!
    とても助かります。

    キャンセル

0

サーバーで稼働しているRubyのソースが見られる状態がどういうことかをちょっと考えてみてください。

実行可能ソースが見られる状態でサーバーにログインしている、という事ですよね?
だとしたら、ソースが生で見えようが、コンパイル済みの実行ファイルが見えようが、
セキュリティとして問題がある事には変わりないと思いませんか?

大事なのは、権限がない人がサーバーにログイン出来ないようにする事、
権限のない人が権限のないファイルを見られないようにする事です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/10 02:14

    お忙しいところご回答ありがとうございます。
    言葉足らずで申し訳ございません。今回やりたい事はセキュリティ対策というよりも、アプリケーションのソースを第三者に簡単に解読されないようにすることです。

    補足しますと、ある企業(以降A企業)と提携して業務アプリを開発することになりました。そして開発したアプリはA企業の社内サーバーにリリースされるため、A企業のサーバー管理者はもちろんサーバーにアクセスできます。

    今回A企業に納品した製品は他社にも今後売っていきます。ソースコードがA企業に見れてしまうとA企業がアプリケーションを模造して他社に売ったり、こちらが知らないところでソースを改変される可能性があります。そのようなリスクを防ぐための方法をご教示頂きたいです。

    もちろん契約で縛りは入れますが、不正しようとすればいくらでもできるため、様々なリスクをなるべく下げるために誰でも読めるソースの状態でのリリースはないと考えております。

    宜しくお願い致します。

    キャンセル

  • 2016/05/10 04:51

    なるほど、そういうことですか。
    そういう意味ではソースコードを読めなくする、という方法は寡聞にして知りません。
    特定のUnixユーザー以外からは(rootも含めて)暗号化されていて一切読めなくするソリューションは知っていますが、su出来れば結局は読めてしまうと言うものです。
    納品先のサーバー管理者がrootを持っていないはずもないので、そういった意味では無理ですね。
    Ruby(Rails)系は、ほとんどの場合サービスとして売っているので、ソースコード納品というのはやった事がないです。
    お力になれずすみません。

    キャンセル

0

確認してませんが、
jaruby で rails アプリを書いたら、 rb ファイルは class ファイルとか jar ファイルに置き換え可能かもしれないです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/10 17:30

    情報ありがとうございます。調べてみます。

    キャンセル

0

RubyEncoder はひとつの選択肢かもしれませんね。

しかしそもそもなんですが、「他企業に全部渡すかもしれない」ものを書くのに、「RoRを使う」事態がちょっと違う気がしてなりません。

なので、今回はSaaSにしてはいかがでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/10 17:28

    RubyEncoderの情報ありがとうございます。
    最初からAWSなどでサーバーをこちらでたててしまうというのも選択肢としてありですね。
    他社展開時はクラウド型にしてから展開します。

    キャンセル

0

ソースの改変について、発注者側からのアドバイスをします。

Webサービスであればいざ知らず、システムを納品してもらう場合、保守管理に関してかなり神経質になります。発注側が考える最悪の事態は、次のようなケースになります。

システムに不具合があり、業務がストップした。システムを納品したベンダーに問い合わせるが、担当者からの返信がない。やっと返信をもらっだが、保証対象外だという回答。こちらとしては、ベンダー責であるが泣く泣く有償での対応を依頼したところ、当時のエンジニアがいなくなっていて、費用・期間とも許容できるものではない。さらに、改変不可の契約があるため、他のベンダーに対応を依頼できない。

このような心配は、「私はそんなことしません!」と力説しても仕方ないところだと思います。

それを考えると発注側は、技術的にも、契約的にも、改変不可でもよいと考える次のような場合かと思います。
・停止したとして業務に影響がない
・代替のソフトの調達が簡単
・販売実績がありアップデートを重ねている

流用不可はもちろん必要ですが、改変不可はかなりハードルが高いのでRubyでのWebシステムが初めてということであれば、お勧めできません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/10 17:25

    納品についてはユーザー側の視点でも考える必要がありますね。
    勉強になりました。ありがとうございます。

    キャンセル

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

  • ただいまの回答率 90.48%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Ruby

    7975questions

    Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

  • ビルド

    59questions

    ソースコードを単体で実行可能なソフトウェアへ変換する過程をビルド(build)と呼びます