人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP5でブログのようなものを自作したいと考えています。

・IDとパスでログインして、ログイン者がそれぞれのブログを運営できる
・記事の投稿・修正・削除の管理機能
・トラックバック、コメント、フィード出力機能は無い
・データは全てMySQL

ブログというより、「ログイン者それぞれに文章を書いてもらい、それをデータベースに格納するだけ」のシステムといった趣きでしょうか。文章をWEB上からデータベースに入力するという事に重点を置きたいのです。もちろん編集等の管理機能も付けます。

・PHP5(Pear)
・MySQL5
を使用します。フレームワークは考えていません。

この一連の流れを実現するのに最適なWEB上のドキュメント、あるいは書籍を紹介して欲しいです。MovableTypeやWordPress等は規模が大きすぎて中身を見てもよくわかりません。もっと小規模なブログシステムで中身を見られるものがあればそれでも構いません。

変な質問ですが、どうぞよろしくお願いします。
(コメント欄にちょっとした追記をすると思います)

●質問者: tokyosmash
●カテゴリ:コンピュータ インターネット
✍キーワード:MovableType MySQL Pear Web wordpress
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● KUROX
●10ポイント

■基本知識

http://www.stackasterisk.jp/tech/php/index.jsp;jsessionid=ax8tm7...

下のほうにあるこの4つ

連載】PHP

スタックアスタリスクの前身サイト ITB-TECHよりの移行記事です。

第1回:PHP基礎 2003/8/29

第2回:PHP中級 2003/8/29

第3回:PHP応用 2003/8/29

PHP基本の基本

■基本サンプル

http://phpspot.net/php/sample.html

■PHP&Pearでデータベース操作

http://phpspot.net/php/pgPHP%81%95Pear%82%C5%83f%81%5B%83%5E%83x...

■掲示板

小さい掲示板のソースを見るのがよい

シンプルで機能がぜんぜんないのを選べばよい

■セッション管理(ログイン関係他)

http://www.stackasterisk.jp/tech/php/php03_06.jsp

◎質問者からの返答

情報ありがとうございます。

ただ、もう少し実践的な情報が欲しいです。一般的なPHPの情報は検索すればいくらでも出てきますので、「ブログシステム・掲示板システムを作る」といったテーマに近いものをお願い致します。


2 ● Yota
●40ポイント ベストアンサー

まずMySQLについてですが、OSがUNIX系でMySQLサーバとWEBサーバが同じマシンにある(内部から接続する)という前提で、設定ファイルの[mysqld]にskip-networkingと書くなどして、外部から接続できないようにすることと、間違っても3306番ポートを空けるようなことはしないでください。それとデータベースを設計するときにユーザごとに別テーブルを作って、GRANTによって必要最低限の権限しか与えないなどすればより強固になります。

ログインのパスワードについては、定期的に変えさせるような仕組みを作れば一番いいですがユーザに嫌がられる場合もあるので、もうひとつ全員共通でもいいから、Apacheのdigest認証(盗聴されてもパスワードがばれない)などをかました方が安全だと思います。

PHPについてですが、バグやセキュリティホールによるバージョンアップが多いので適切に対処すること。スクリプトはクロスサイトスクリプティングやSQLインジェクションに対応してあれば、大体大丈夫と思いますが、こういう本で勉強するのもいいと思います。

入門PHPセキュリティ

入門PHPセキュリティ

  • 作者: クリス シフレット
  • 出版社/メーカー: オライリージャパン
  • メディア: 単行本

アプリケーションについてブログの例は知りませんが、この本の掲示板のところが参考になるかもしれません。

今日からつかえるPHP5サンプル集

今日からつかえるPHP5サンプル集

  • 作者: 山田 祥寛
  • 出版社/メーカー: 秀和システム
  • メディア: 単行本

◎質問者からの返答

セキュリティに関する情報ありがとうございます。

>Apacheのdigest認証

これは初めて知りました。Pear:Authだと標準でMD5化してDBに保存するようです。また、SSLで通信時は防御しようと思っています。それよりも強固なのでしょうか?Apacheでログイン認証するというのはあまりやった事がありません。


>skip-networking

>3306番ポートを空ける

これはroot権限のみ対処すると考えていいのでしょうか。あくまでroot権限は持たないつもりです。限りなくrootに近い権限は持ちますが、サーバー管理自体は業者に任せるつもりです。


**何かの本で読んだのですが、掲示板を作る際に「フォーム以外からも投稿できるので、それを防がなければならない」といったような事が書いてありました。

これは、受け取ったデータがフォームから書き込まれたものかどうかという事を判別しているんだと思いますが、そういった事を解説しているものは無いでしょうか?

よろしくお願いします。


3 ● Yota
●40ポイント

1.ハッシュ化して保存してあっても通信経路にパスワードがそのまま流れてしまうとまずいので、digest認証のようなチャレンジレスポンス方式が有効なのですが、SSL(すべてのパケットが暗号化される)の中でやるならまあそこまで必要ないかなという感じです。

2.MySQLサーバについては、業者に任せるということですので適切に運用されるとしましょう。わたしが言いたかったのは、外部と通信する必要がないのに、ポートが開いていたりすると攻撃にあって大変ということです。

3.

掲示板を作る際に「フォーム以外からも投稿できるので、それを防がなければならない」といったような事が書いてありました。

これは、受け取ったデータがフォームから書き込まれたものかどうかという事を判別しているんだと思いますが、そういった事

これはちょっとわからないです。

◎質問者からの返答

3についてですが、例えばwrite.phpにフォームがあってそこで何か書いてもらうとします。そのデータをPOSTでsql.phpに送ってDBに登録するとします。


ところが悪意のあるクラッカーがwrite.phpを介さないで別のドメインから直接sql.phpにデータを送り続けるような事があるので、それを防ぎましょうといった文脈だったと思います。これに関してはまた別の質問を立ち上げますので、もしよろしかったらお願いします。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ