Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。584件-1クローズされました。この質問では現在、回答を受け付けていません。スタック・オーバーフローでオントピックになるように質問を更新してください。サイトのレポジトリを公開し、サーバーサイドのソースコードが生徒や第三者に見えるようにしたいです。実装したウェブサイトのレポジトリを公開していて、実際にブラウザでアクセスできるサイトは検索などでもみつからなかったのですが、そもそもウェブサイトのサーバーサイドのソースコードを公開することは一般的にはあるんでしょうか?そしてサーバーサイドのソースコードを公開して全世界からのアクセスを許可した場合、どのような危険が考えられるのでしょうか?サーバーサイドの実装が丸見えになるので攻撃者などにも格好の餌食になるのではないかと思っていますが、サーバーサイド・エンジニアリングの教育のため広く第三者にみえるようにしたいんです。個の銅バッジ3「教育のため」とは、誰かがあなたに対して教育を行うことを言っているのか、あなたが誰かに対して教育するのか、どちらでしょうか。ソースコードの公開とセキュリティの関係については様々な視点で山のように先行議論がありますが、どの程度まで踏まえた上での質問でしょうか。今の内容では「質問の範囲が広すぎる」かつ「主観的な答えしか集まらない」内容だと思うので、前提と聞きたいことを具体的に絞った方がよいです。12:302例えばWordPressとかEC-CUBEとか、公開されているソースコードとほぼ変わらないものが商用含め様々なサイトで使われていますが、そういうことではないのでしょうか。票5そもそもウェブサイトのサーバーサイドのソースコードを公開することは一般的にはあるんでしょうか?あります。複数人でそのウェブサイトを開発し運用していく上で、ソースコードを共有することは重要になります。その共有場所としてソースコードがオープンな状況になってしまう場所を選択することも多いです。GithubのPublicリポジトリが代表例ですね。WordPressなどのインストールして使うようなソフトウェアも同様です。サーバーサイドのソースコードを公開して全世界からのアクセスを許可した場合、どのような危険が考えられるのでしょうか?結局のところ、「守りたいことは何か?」という点に尽きます。危険性の排除を最大限優先するのであれば、全て隠せば良いし、危険性が全くないのであれば、全て晒してしまって良いわけです。「守りたいことが何なのか?」の程度によって、隠すもの、晒すもの、それらの割合が自然と変わってきます。WordPressの例であれば、データベースのパスワードなど、サイトごとに隠さなければならない情報がありますので、WordPressで公開されているソースコードの中には、もちろん「隠さなければならない情報」は一切含まれていません。サイトのサーバにインストールした後、隠さなければならない情報を追記することになります。それを隠す責務は、WordPressの作者側ではなく、そのサイトの運営者側です。wp-config.phpファイルが閲覧可能であれば、もう何でもありの危険きわまりない状況になります。WordPressのデータベースの構造は、WordPressのソースコードに含まれるものですので、公開情報です。世界中の誰でもその構造を知ることができます。それが直ちに危険かというと、構造を知っても、データベースに直接アクセスできなければ、直ちに危険な状況ではありません。サイトの運営者側が適切にサイトを守ることができれば良く、それよりも構造を公開して皆で共有することで、WordPressの開発スピードを高められます。世界中にいるクラッカーは日々様々なソフトウェアの脆弱性を突いて侵入を試みています。いった人達にできるだけ情報を渡さない、という考え方もあります。この場合、WordPressを使ってることがバレれば、データベースの構造などが簡単にわかるため、侵入されるリスク、侵入された後の被害が拡大するリスクは高まります。この考え方であれば、WordPressを選択しない、またはWordPressを利用していることを完全に隠す、といった対処が必要になります。守りたいこと/ものは何か?(守れなかった場合の被害を検討)それを守るためには何が必要か?(隠すための手段を検討)公開したときのメリットは何か?(共同開発が必要、第3者によるレビュー/改善を受けたい、など)といった要因がそれぞれどの程度あるのかによって、答えは変わってきます。サイトのレポジトリを公開し、サーバーサイドのソースコードが生徒や第三者に見えるようにしたいです。11:06Wordpressを使っていることがバレると侵入されるリスクが高まる理由を教えて下さい。「脆弱性の存在が既知であるソフトウェア(Wordpressのバージョン)を使い続けるリスク」の言い換えではないでしょうか。私もsuzukisさんと同意見です。秘匿すべきものの一つに暗号があると思いますが、暗号関係のアルゴリズムはことごとくオープンなものになっています。秘匿して安全性が高まるなら暗号のアルゴリズムも秘匿すべきですが、専門家はそうは考えていないようです。13:34侵入されるリスクが高まる理由は、例えばwp-config.phpやwp-admin.phpなど管理者が使うことになる「比較的安全性が低い(=攻撃しやすい)対象」が明確になるから、という意図でした。どこから攻撃を仕掛けるか、といったことが絞れれば攻撃者にとっては非常に嬉しい情報でしょうし、WordPressだとわかればバージョンを特定する作業を真っ先に行うことで、「既に知られている脆弱性」を迅速に知ることもできるかと思います。最初にWordPressを利用しているかどうかがわかるだけで、攻撃者にかなりの情報を渡してしまうことになるのかな、という考えです。暗号アルゴリズムについては、それを「何としても」隠す必要はないと僕も思います。「秘密鍵は第3者に知れてはいけない」という隠すべきものもあるわけで、そういった「オープンにして良いもの」「隠すべきもの」をちゃんと把握しましょう、という回答をしたつもりです。自分が攻撃者の立場になって考えると、どの暗号アルゴリズムを使っているかを探す作業が必要なのかそうでないのかによって、侵入完了までの工程と時間が変わってくるはずで、リスクの軽減という点では「暗号アルゴリズム自体を無条件に簡単に知れる状態」というのは避けておくことに超したことはないのかな、という考えでした。時間稼ぎにもならないかもしれませんが。0:28管理画面に適切なセキュリティ対策を施さない例を挙げられていますが、それはどのソフトウェアを利用していても同じことではないでしょうか。Wordpressの使用が知られて攻撃者が有利になる理由としては不十分です。結局「既知の脆弱性を放置した場合のリスク」を「脆弱性の存在を秘匿することで下げよう」というお考えのようです。それはクローズドソースであっても内部犯もしくは情報流出に対して全く無力です。14:24確かにそうですね。yhataさんが考える回答を投稿されてはいかがでしょうか?と思ったら、改善待ちになってしまったようです。タグが付いた他の質問を参照するか、自分で質問をする。