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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

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

ビルド

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

Q&A

解決済

5回答

2036閲覧

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

snozaki

総合スコア18

Ruby

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

ビルド

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

0グッド

1クリップ

投稿2016/05/09 10:07

###前提
Ruby初心者です。

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

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

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

宜しくお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答5

0

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

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

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

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

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

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

投稿2016/05/10 03:25

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snozaki

2016/05/10 08:25

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

0

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

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

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

投稿2016/05/10 03:00

sokha

総合スコア216

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snozaki

2016/05/10 08:28

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

0

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

投稿2016/05/09 21:54

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snozaki

2016/05/10 08:30

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

0

ベストアンサー

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

投稿2016/05/09 21:21

lightson

総合スコア553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snozaki

2016/05/10 08:31

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

0

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

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

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

投稿2016/05/09 14:43

rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

snozaki

2016/05/09 17:14

お忙しいところご回答ありがとうございます。 言葉足らずで申し訳ございません。今回やりたい事はセキュリティ対策というよりも、アプリケーションのソースを第三者に簡単に解読されないようにすることです。 補足しますと、ある企業(以降A企業)と提携して業務アプリを開発することになりました。そして開発したアプリはA企業の社内サーバーにリリースされるため、A企業のサーバー管理者はもちろんサーバーにアクセスできます。 今回A企業に納品した製品は他社にも今後売っていきます。ソースコードがA企業に見れてしまうとA企業がアプリケーションを模造して他社に売ったり、こちらが知らないところでソースを改変される可能性があります。そのようなリスクを防ぐための方法をご教示頂きたいです。 もちろん契約で縛りは入れますが、不正しようとすればいくらでもできるため、様々なリスクをなるべく下げるために誰でも読めるソースの状態でのリリースはないと考えております。 宜しくお願い致します。
rifuch

2016/05/09 19:51

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問