

生徒の教育のため `Github` で サイトのレポジトリを公開し、サーバーサイドのソースコードが生徒や第三者に見えるようにしたいです。  
`Ruby on Rails`
実装したウェブサイトのレポジトリを公開していて、実際にブラウザでアクセスできるサイトは検索などでもみつからなかったのですが、そもそもウェブサイトのサーバーサイドのソースコードを公開することは一般的にはあるんでしょうか？

そしてサーバーサイドのソースコードを公開して全世界からのアクセスを許可した場合、どのような危険が考えられるのでしょうか？

サーバーサイドの実装が丸見えになるので攻撃者などにも格好の餌食になるのではないかと思っていますが、サーバーサイド・エンジニアリングの教育のため広く第三者にみえるようにしたいんです。


CC BY-SA 3.0
2016-03-20T09:39:33.917
23299
2016-03-21T00:03:14.407
2016-03-20T13:19:50.997
5505
5505
question
security
オープンソースでサーバーサイドのソースコードを公開することはどのような危険があるんでしょうか？


> そもそもウェブサイトのサーバーサイドのソースコードを公開することは一般的にはあるんでしょうか？

あります。複数人でそのウェブサイトを開発し運用していく上で、ソースコードを共有することは重要になります。その共有場所としてソースコードがオープンな状況になってしまう場所を選択することも多いです。GithubのPublicリポジトリが代表例ですね。また、WordPressなどのインストールして使うようなソフトウェアも同様です。

> サーバーサイドのソースコードを公開して全世界からのアクセスを許可した場合、どのような危険が考えられるのでしょうか？

結局のところ、「守りたいことは何か？」という点に尽きます。危険性の排除を最大限優先するのであれば、全て隠せば良いし、危険性が全くないのであれば、全て晒してしまって良いわけです。「守りたいことが何なのか？」の程度によって、隠すもの、晒すもの、それらの割合が自然と変わってきます。

WordPressの例であれば、データベースのパスワードなど、サイトごとに隠さなければならない情報がありますので、WordPressで公開されているソースコードの中には、もちろん「隠さなければならない情報」は一切含まれていません。サイトのサーバにインストールした後、隠さなければならない情報を追記することになります。そして、それを隠す責務は、WordPressの作者側ではなく、そのサイトの運営者側です。wp-
config.phpファイルが閲覧可能であれば、もう何でもありの危険きわまりない状況になります。

WordPressのデータベースの構造は、WordPressのソースコードに含まれるものですので、公開情報です。世界中の誰でもその構造を知ることができます。ではそれが直ちに危険かというと、構造を知っても、データベースに直接アクセスできなければ、直ちに危険な状況ではありません。サイトの運営者側が適切にサイトを守ることができれば良く、それよりも構造を公開して皆で共有することで、WordPressの開発スピードを高められます。

ただし、世界中にいるクラッカーは日々様々なソフトウェアの脆弱性を突いて侵入を試みています。そういった人達にできるだけ情報を渡さない、という考え方もあります。この場合、WordPressを使ってることがバレれば、データベースの構造などが簡単にわかるため、侵入されるリスク、侵入された後の被害が拡大するリスクは高まります。この考え方であれば、WordPressを選択しない、またはWordPressを利用していることを完全に隠す、といった対処が必要になります。

まとめると、

  * 守りたいこと/ものは何か？（守れなかった場合の被害を検討）
  * それを守るためには何が必要か？（隠すための手段を検討）
  * 公開したときのメリットは何か？（共同開発が必要、第3者によるレビュー/改善を受けたい、など）

といった要因がそれぞれどの程度あるのかによって、答えは変わってきます。

> 生徒の教育のため Github で サイトのレポジトリを公開し、サーバーサイドのソースコードが生徒や第三者に見えるようにしたいです。

お持ちのそのリポジトリにあるソースコードについて、上記3つのポイントをそれぞれ検討し、危険性を洗い出してみてはいかがでしょうか？


CC BY-SA 3.0
2016-03-21T00:03:14.407
23311
2016-03-21T00:03:14.407
531
23299
answer