- ベストアンサー
掲示板はMySQLとテキストファイルのどちらで作るほうがよいでしょうか?
初心者です。 掲示板を作ろうと思うのですが、MySQLとテキストファイルのどちらにデータを渡して保存するべきか迷っています。管理の際のセキュリティ面やレスポンスの早さなど、それぞれのメリット・デメリットを教えてください。また、個人的なおすすめを教えていただけるとありがたいです。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
> 今回、最終的にはPHP+Ajaxによって掲示板orチャットシステムを作ろ > うと思います。 ならばJavaScriptのセキュリティ強化も必要ですね。 > そこで、今回考えていたことは、掲示板がセキュリティホールになってア > カウント情報が漏洩しないか不安であるため、テキスト使用にすべきか、 > DB使用にするべきか迷っておりました。 テキストであってもアカウントを利用しているスクリプトやデータベースに脆弱性が存在するのであれば、 掲示板云々関係なく問題になります。 なので、問題にするのはデータベースのアクセス権限とセキュリティを考慮したスクリプトです。 それらのセキュリティに問題があれば、テキストファイルでも情報を改ざんしたりする事が出来てしまいます。 また、ログはwwwrootより上(httpでアクセス出来ない場所)にテキストファイル として吐き出すのが一般的だと思います。
その他の回答 (3)
目的によると思います。 作った掲示板を本格的に運用することが 目的ならば、MySQL(DB)の方がよいでしょう。 SQLをマスターするのは必須ですが、 排他処理などは、基本的にDBMSがやってくれますし よほどのことがない限り レスポンスが悪くなることもないでしょうから。 ただ、他のサーバへ移転したり、 作った掲示板スクリプトを公開したりする場合は、 MySQL(DB)環境がないと動作しない訳ですから 敷居は高くなります。 こちらの用途があるなら、 PHPだけで動かせるテキスト方式の方が 汎用性は高いでしょう。 あるいは、 この掲示板スクリプトはあくまで通過点に過ぎず、 さらに勉強して、本格的なシステムを作るのが目的 と考えるのであれば、どちらも必要な方法だと思います。 内容によって、 データベースが簡単、有利な場合もあれば、 テキストファイルの方が扱いが楽な場合(ログファイルなど)も ありますので。
補足
みなさんさまざまな意見ありがとうございます。こちらの補足画面よりみなさま宛てに返答させていただきます。da12aem0nさま申し訳ありません。 まず、MySQLに関してですが、私は構築できる程度の知識は持っております。また、PHPもある程度のシステム構築はできる程度です。しかし、PHP/MySQLのセキュリティ面に関してはまだまだ勉強不足といったところです。 今回、最終的にはPHP+Ajaxによって掲示板orチャットシステムを作ろうと思います。 ちなみに、データベースにはここで、質問した内容の「掲示板」以外にユーザのアカウントを保存するテーブルを既に作ってあります。 そこで、今回考えていたことは、掲示板がセキュリティホールになってアカウント情報が漏洩しないか不安であるため、テキスト使用にすべきか、DB使用にするべきか迷っておりました。レスポンスにそこまで、大差がないようであれば、残るはセキュリティ面ですね。。。。 何か良い案などありましたら、是非お願いします。ちなみに、ログ情報など、すべての情報をDBに保存して正解なのですかね?
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
書いて出してだけなので、動作自体はDBでもテキストでも同じでしょう。 セキュリティ面においてはどっちもどっちだと思います。 DBにすれば脆弱性がないようにスクリプティングしなければなりませんし、 テキストでも同様のスクリプティングとファイルの位置・パーミッション設定などが必要になってきます。 テキストの場合はサーバの内容を改ざんされるような問題になる挙動が少ないかもしれないが、 DBであればそちらは多く存在します。 初心者ならば、まず何も考えないでよさげな方を選べばいいと思います。 そこから書籍などから知識を得て、自分が作ったプログラムだと何がマズいのかを 知っていけば良いと思います。 レスポンスについてはDBの方が早いでしょう。 DBなら管理画面を作って、簡単にUPDATE出来ますよ。 テキストだとちと苦労します(内容を全部書き換えになる)。 まぁ、書籍やネットだとまずMySQLかPostgreSQLを利用しているでしょうから、 情報が多い分、DBを使った方が楽だと思います。
- foreach
- ベストアンサー率51% (43/84)
データベースの有無はサーバー環境に左右されますが、質問を見る限りMySQLは選択できるようなので、私なら迷わずMySQLを選びます。 まず掲示板ということは、複数人が同時にアクセスしてしまうかもしれないという事を念頭に置かねばなりません。書き込みをしてる間はロックして・・なんて管理を自分でやるとなると案外大変で面倒です。 また、テキストファイルであればセキュリティ面も十分考慮しなければなりません。普通においておくとブラウザで丸見えになりますからね。 更には書き込み属性やらも絡んで来ます。 個人的意見ですがこのケースの場合、テキストファイルを選択するメリットは無いと思います(勉強になるとかの副産物的なメリットはあるかも)。 スレ主さんは初心者のようなので、この場合であればMySQLを選ぶのが吉かと思います。
補足
ありがとうございます。 いろいろと参考になりました。最終的にどうするかは微妙ですが、とりあえずの形でMySQLを使用することになると思います。 アドバイスありがとうございました。