トップページphp
991コメント359KB

SNS作ってみよう

■ このスレッドは過去ログ倉庫に格納されています
0001へっぽこ君2006/09/05(火) 23:37:06ID:dR0NUQuB

そんなわけでテストよろすくお願いします。

http://tiraura.sytes.net/
0241nobodyさん2006/09/29(金) 16:42:29ID:???
勉強するのに役立つサイトあったらおしえてちょ!
0242nobodyさん2006/09/29(金) 17:04:19ID:???
何の勉強だよwwww

っ google, 各種マニュアル

好きな方を選べ
0243nobodyさん2006/09/29(金) 17:07:00ID:???
基礎なら山口家の逆襲とかがわかりやすかった気がする。
0244PHP,Java(JSP),Python,Postgres2006/09/29(金) 17:23:59ID:???
>>241
ttp://www.kumei.ne.jp/c_lang/index.html
がんばれ!(何
0245nobodyさん2006/09/29(金) 17:57:02ID:???
>>244
ちょwwwをまwww猫でもわかるかよwwww
0246PHP,Java(JSP),Python,Postgres2006/09/29(金) 18:01:00ID:???
JavaとかPHPとか書いている俺が
C言語をオススメする今日この頃

まぁ、Cをやっといて損はしないさ!
0247nobodyさん2006/09/29(金) 18:10:55ID:???
そりゃぁ、Cはやっといた方が色々役立つね。
PHPとかでWebProgやってても、どこかでCに触れないといけなくなるしなぁ

まぁCから入ってJavaとかPHPとかやってきたけど、最近C#がやりたくなってきt(←板違い乙っと)
0248PHP,Java(JSP),Python,Postgres2006/09/29(金) 18:22:24ID:???
確かにC#やりt

まぁPHPからCに戻ろうとすると、アレなんだよなぁ・・・

変数に$を付けたくなる病 だからなぁ・・・。

ini $i; とか・・・
0249PHP,Java(JSP),Python,Postgres2006/09/29(金) 18:31:05ID:???
まぁ、言語の話になってしまったがみんな SNSがんばろうって事で。
0250C,Java,Perl,PHP2006/09/29(金) 18:45:38ID:???
C言語をやっておけば、PHPの拡張機能のライブラリ(PECL)を作れるからOK

…C言語でSNSを作る人いる? Apacheに組み込んだりしてw
0251PHP,Java(JSP),Python,Postgres2006/09/29(金) 18:50:39ID:???
うわぁ・・・
Cで書くとメンテがなぁ・・・早いんだろうけどなぁ・・・
よくある話だと、あれじゃないかな 内部のCOREの部分はCで書いて
見せる部分はPHPやRubyとかPythonとかで書くと〜いい感じとか聞くけどねぇ

0252へっぽこ君 ◆vPBS8pifwk 2006/09/29(金) 22:18:15ID:???
うわわ、高度な話題に。。ついていけないorz
perlの時代はもう終わったのかしら・・

>>240
今Operaで確認したらレイアウトくずれまくりんぐ+画像が全部飛んでますね。。。(拡張子が飛んでる)
テストありがとうございまっす。
0253nobodyさん2006/09/29(金) 22:24:36ID:???
でも、Operaってシェア1%ぐらい?
0254へっぽこ君 ◆vPBS8pifwk 2006/09/29(金) 22:42:01ID:???
InternetExplorer 87.29%
Firefox 7.13%
Safari 3.02%
Opera 2.05%
NetscapeNavigator 0.07%
Mozilla 0.07%
Sleipnir 0.04%
Camino 0.02%

立ち上げて約一ヶ月(約5000hit)の集計だと
Opera2.05% そこそこ使われてますね
0255へっぽこ君 ◆vPBS8pifwk 2006/09/29(金) 23:08:15ID:???
不完全だけど、Operaでも表示されるように修正しますた。
>>240さんありがとー

perlとasがちょこっと弄れる程度なんでこれを機会に他言語勉強しよう。。
明日php入門書でも買ってこよっと。
0256nobodyさん2006/09/29(金) 23:12:09ID:???
>>254
結構高いな

最近はゲーム機とかモバイルにOpera搭載してるのが増えてきてるし、
Opera10でどの程度IE7のシェアを切り崩せるのか期待。
まぁ、昔Opera使ってた時期があるから微妙に思い入れがあるわけで(今はFxだなんて言えない)

>>255
時々PHP質問スレで答えてるから、分からなくなったらщ(゚Д゚щ)カモォォォン
0257nobodyさん2006/09/29(金) 23:18:47ID:???
>>254
要するに、これって、WebProg板の住人のシェアって考えていい訳?
0258nobodyさん2006/09/29(金) 23:19:49ID:???
>>257
と言うより、このスレ見てる人のシェア?
0259nobodyさん2006/09/29(金) 23:27:51ID:???
Cならポートを直接リスンした方が早いよ。
画像イメージ程度ならアパチ任せの方が楽だけどさ。
アパチもCだからパクれば良いだけだが。
0260へっぽこ君 ◆vPBS8pifwk 2006/09/29(金) 23:28:43ID:???
このスレを見て来て頂いてるテスターさんが何人いるかわかんないんですが

登録者130人(このスレの人+一般登録者)+宣伝見てトップまで来た人のブラウザシェアです。
0261nobodyさん2006/09/29(金) 23:33:23ID:???
そのOPERA たぶん俺だ
つまりこういうこと

InternetExplorer 87.29%
Firefox 7.13%
Safari 3.02%
俺 2.05%
NetscapeNavigator 0.07%
Mozilla 0.07%
Sleipnir 0.04%
Camino 0.02%
0262nobodyさん2006/09/30(土) 00:34:58ID:???
>>261
一人で何回もアクセスしているからってこと?
0263nobodyさん2006/09/30(土) 00:39:03ID:???
俺はSleipnirです。
0264nobodyさん2006/09/30(土) 01:58:16ID:???
やっぱ SNS 作るには C で書くのが一番だよなぁ。
0265PHP2006/09/30(土) 02:44:42ID:???
ADB設計 >>216,>>223

users テーブル

id (int)
username (varchar(255))
mail_pc (varchar(255))
mail_mobile (varchar(255))
mail_regist (varchar(255))
password (varchar(255))
birthday (date)
gender (varchar(1))
bloodtype (varchar(2))
profile (text)
image (text)
image_1 (text)
image_2 (text)
image_3 (text)
user_id_invite (int)
birthday_flag (enum('public','friend','private'))
diary_flag (enum('public','friend','private'))
friend_flag (enum('public','friend','private'))
login_count (int)
login_date (datetime)
created (datetime)
modified (datetime)
0266nobodyさん2006/09/30(土) 02:54:49ID:???
>>244
このサイトちょっと見たけど道のりは長そうだ。
このドシロウトには。。。




おまえらすごいわ
0267nobodyさん2006/09/30(土) 09:38:53ID:???
>>217
アニメーションが作れるの?
MacはOSにRubyがバンドルされてるんだよね?

Quartz Composerによるビジュアルフロープログラミング
http://journal.mycom.co.jp/articles/2005/05/26/qc/

Quartz Composer入門
http://www.big.or.jp/~crane/cocoa/9800_QuartzComp/01_StartQC/index.html

10.4に追加されたビジュアルプログラミングソフト。
パッチを連結することで複雑な動作をするビジュアルを比較的簡単に作成することができる。

SNSもこんなかんじで作ったり機能追加できたらいいかもしれないですね。
0268nobodyさん2006/09/30(土) 12:05:15ID:???
マカは氏ね!
0269nobodyさん2006/09/30(土) 13:17:38ID:???
NASA音頭
ttp://www.youtube.com/watch?v=lTpmPLk4x20&NR
0270nobodyさん2006/09/30(土) 13:44:46ID:???
>>244
この人はC言語を他人に教える前に、
サイトのデザインを習うべきだと思うな。

あのセンスはダサくて見づらいうえに、フラッシュとか超イライラする。
中学生が作った感じ。
0271nobodyさん2006/09/30(土) 14:19:17ID:???
>>267
ぅゎぁ・・面白そうだなぁ・・・こんなのあったのか

>>270
コードとかでよく叩かれたりしてるけど、それでも初心者には嬉しい物だろう。
0272nobodyさん2006/09/30(土) 14:45:16ID:???
>>265

乙です
ちょっと質問です

> mail_pc (varchar(255))
> mail_mobile (varchar(255))
> mail_regist (varchar(255))
mail_registとmail_pcの違いはなんでしょうか

> gender (varchar(1))
これはintもしくはenumでも良いのでは・・

> image (text)
> image_1 (text)
> image_2 (text)
> image_3 (text)
これはファイルのパスを入れるという理解でよろしいでしょうか

> user_id_invite (int)
これはだれから紹介されたか、という理解で(ry


0273nobodyさん2006/09/30(土) 14:51:41ID:???
連投スマソ
messages テーブル書きます
------------
ADB設計 >>216,>>223を元に
users テーブル >>265

messages テーブル
id (int)
user_id_from (int)
user_id_to (int)
isread (boolean)
created (datetime)
modified (datetime) ←isreadの更新日時=読んだ日時

これでどないでしょう
0274nobodyさん2006/09/30(土) 18:47:11ID:???
>>273
>modified (datetime) ←isreadの更新日時=読んだ日時

こんなの必要か?
0275nobodyさん2006/09/30(土) 20:56:58ID:???
じゃ、なしで
0276PHP2006/10/01(日) 01:16:33ID:???
>>272
mail_registは、最初の登録メールアドレス
=OpenPNEのテーブル表を参考にしてます。

OpenPNE ダウンロード
http://docs.openpne.jp/?%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9

OpenPNE2.2 DBテーブル定義書 [XLS]
http://tejimaya.org/openpne/docs/2_2/DB_OpenPNE_2_2.xls
OpenPNE2.0 DBテーブル定義書 [XLS]
http://tejimaya.org/openpne/docs/2_0/DB_OpenPNE_2_0.xls

みなさん、フラグの値は、どういう型で持たせるのが良いですかね?
(1) tinyint(1)のタイプ
0,1の2値だけを入れるカラムだと、tinyint(1)をよく使ってます。
=値チェックをするとき、楽かな?

(2) varchar(1)
これに0,1の2値を入れてるのも見ます。

(3) boolean = これ、あまり使ってるのを見たことないです。>私だけ?
(4) enum = これも、あまり使っているのを見たことないです。OpenPNEが使っていたので、それでイイやと。w

SQLiteは、(3)(4)対応してない?
0277PHP2006/10/01(日) 01:17:21ID:???
>>274,275
DB設計のとき、
・レコード作成日時 (created)
・レコード更新日時 (modified)
のカラムは(使わないとしても)全てのテーブルに入れておけ!と注意されませんか?

他人のやり方って、面白いwww
(へぇ〜、そんなふうにやってんのかー、と。)
0278nobodyさん2006/10/01(日) 01:41:01ID:???
なんかもう OpenPNE つかってればよくね?
0279nobodyさん2006/10/01(日) 02:00:46ID:???
>>278がイイこと言った
手っ取り早く他人の成果物を使いたい向きにはPNEでFA

だがスレタイに作ってみようとあるかぎり俺たちは進む
0280nobodyさん2006/10/01(日) 02:11:39ID:???
>>278
すぐにSNSを設置・運営したいなら、やっぱOpenPNEの利用がお手軽ですね。

>>279
何かを作ってみること、それ自体が一つの楽しみ。
OpenPNEも変更が繰り返されているので、モアベターを追求してるんですね。
=Mojaviベースから、Ethnaベースに変更して、リファクタリング予定とのこと。
http://d.hatena.ne.jp/openpne/20060913/1158154174
0281nobodyさん2006/10/01(日) 04:58:57ID:???
>>277
完全独学なので、誰も注意してくれる人がいない。
(逆に言えば、無駄な作法を押し付けられることもないけど)
0282へっぽこ君 ◆vPBS8pifwk 2006/10/01(日) 12:56:25ID:???
>>256
ありがとー
早速入門書買ってきたんだけど
初歩すぎて失敗orz 

なんていいつつ
echo("うんこ!うんこ!")
とか、いろいろ試してニヤニヤしてます。
質問スレではお世話になるかもなので、よろすくです。

話変わるけど
せっかく多人数の集まるsnsなんで、CGIゲームみたいな要素があると面白くないかな?
そうすることによって定住してくれる可能性も高まりそうだし。
0283nobodyさん2006/10/01(日) 13:41:22ID:???
チラ裏はPerlで書かれてたのか。
0284nobodyさん2006/10/01(日) 14:53:42ID:???
SNSなら開発効率より動作速度を求めた方が良さそうな気がするけど俺だけかな。
0285nobodyさん2006/10/01(日) 16:01:17ID:???
IO周りがボトルネックになりそうじゃないか?
実際に作って負荷テストやったわけじゃないから分からんけど

下手に速度求めてハードコーディングするより、拡張がやりやすい事が重要だと思う。
まぁあれだ、そんな大規模向けに調整する必要はないんじゃないか?(非効率に書いて良いって意味じゃないけど)

>>282
慣れてきたら定番の掲示板でも作っては?(ログはファイルに保存)
で、それをテンプレート・フレームワーク・DBに対応させたりするとイイ
0286nobodyさん2006/10/01(日) 18:54:05ID:???
デザイン変更をCSSで出来るといいね。

GroupTube
http://grouptube.jp/
サンプル
http://sample.grouptube.jp/
0287nobodyさん2006/10/01(日) 20:22:43ID:???
>>GroupTube

速いな、システムはどんな感じなんだろうか。
0288PHP2006/10/01(日) 20:32:08ID:???
ちょっと趣向を変えて、SNSをたくさん設置できるシステムにしてみますか?

http://grouptube.jp/
http://www.so-net.ne.jp/sns/
0289PHP2006/10/01(日) 20:38:35ID:???
レンタルSNSはこれからかな?

http://sns.fc2.com/
http://nanoty.jp/
http://www.friendlycolor.com/
http://atpne.jp/
0290nobodyさん2006/10/01(日) 20:47:17ID:???
>>287
速くないよ。サンプルが激重だった。
0291nobodyさん2006/10/01(日) 23:34:47ID:???
機能重視よりは速度重視の方がウェブプロ板向きかな。
ミクシもそうだけど、最終的にはパフォーマンスで頭打ちに成ることが多いし。
その困った段階で修正したくても、大元から手を入れて作り直す羽目に成って全面移行で魅力無くなってアボーンになりやすい。
0292nobodyさん2006/10/01(日) 23:48:22ID:???
>>291
速度重視にするには、どうやって作ればいいんですか?
0293nobodyさん2006/10/01(日) 23:53:42ID:???
登録者数を少なく
閑古鳥を泣かすように
機能は抑え気味
0294nobodyさん2006/10/02(月) 00:39:37ID:???
というか最低限の機能の実装でしょ
へたするとコミュニティいらないかも、足跡いらないかもだよね
ぐらいの感じ
招待機能、日記、くらいまでか?
0295nobodyさん2006/10/02(月) 00:50:28ID:???
> というか最低限の機能の実装でしょ

中古事務用品屋でホワイトボード買ってこれば、
コンピュータ使わなくても最低限のことはできると思うよ。w
0296nobodyさん2006/10/02(月) 01:43:24ID:???
そうか?

試しにホワイトボードでSNS運営してレポよろ
0297nobodyさん2006/10/02(月) 02:52:24ID:???
っていうかmixiやってて思うんだけど、SNSにとってコミュニティって本当に必要かな?
よくテレビとかでは「SNSでコミュニティが盛り上がってる」みたいなことを
言ってるけど、俺は自分の趣味志向を示すためにいくつかのコミュに参加はしてるけど、
そこの話題に加わったことは無い。

知らない人とコミュで会話するより、実際の知り合いの日記にコメントつけたりするほうが
よっぽど楽しいと思うんだが。
0298nobodyさん2006/10/02(月) 08:05:25ID:???
それは単に自分がそうなだけ、もしくはコミュニティの質がそうだからじゃない?
海がめのスープみたいなコミュはかなり盛り上がってるよ。
0299nobodyさん2006/10/02(月) 08:10:57ID:???
>>296
Flashか何かで、Web上にホワイトボードを再現するのはいいかも。
UMLやマインドマップを作成できればGOOD

http://www.imaginationcubed.com/
http://gigazine.net/index.php?/news/comments/20060707_imagination_cubed/
0300nobodyさん2006/10/02(月) 12:15:20ID:???
足跡はいるんじゃね?SNSの醍醐味クサイ
コミュニティはいっそのこと2chのスレにリンクすればいいんじゃね?人いるし
0301nobodyさん2006/10/02(月) 12:20:15ID:???
> 足跡はいるんじゃね?SNSの醍醐味クサイ

ついでにコミュのスレにも足跡つけよう!
そうすれば立派なグループウェアになれるよ!
0302nobodyさん2006/10/02(月) 12:40:44ID:???
足跡とかコミュとか行ってる人はOpenPNEへどうぞ
0303nobodyさん2006/10/02(月) 13:06:06ID:???
ちょっとページ見るだけでSQL飛びまくりか。楽しそうだな。
0304nobodyさん2006/10/02(月) 14:48:03ID:???
> SQL飛びまくり

新しい表現だな。
0305nobodyさん2006/10/02(月) 14:56:06ID:???
スクール水着に飛びまくりと脳内変換したやつ・・・・はいないだろうな




ノシ
0306nobodyさん2006/10/02(月) 15:24:46ID:???
おまいの脳内補完能力はネ申の粋に達しているようだが、そのレベルだと日常生活が危なi(ry
0307nobodyさん2006/10/02(月) 18:13:44ID:???
質問させてください。
mixiとかでも他のsnsでもだけど、
次回自動ログインってクッキーでやってると思うけど…

このクッキーに入る情報って何がいいの?
登録時にランダムのパスワード的なのを作ってそれで認識させてんのかな?
セキュリティ的には何がいいんでしょう?
0308nobodyさん2006/10/02(月) 19:48:44ID:???
>>298
いや、俺の周囲の人たちもみんなコミュ不要と言ってる。
コミュで盛り上がってるヤツらは2chにいるヤツらとカブってんじゃねぇの?
つまりmixiである必然性があまりない。しかもせっかくのSNSが荒れたりする副作用付き。
0309nobodyさん2006/10/02(月) 20:43:25ID:???
たしかに昔はコミュで見知らぬ人と交流するのも楽しかったけど、
今じゃmixiは2chと変わらない無法地帯になりつつあるからな・・・
巨大化しすぎたな。
0310nobodyさん2006/10/03(火) 00:29:49ID:???
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう
SNS作ってみよう

さ、さ、夜更かしコーディングの時間ですよ。
出勤が早い方は、毎日こつこつ30分でも書いていきましょう。
0311nobodyさん2006/10/03(火) 01:12:59ID:???
3億円あっても楽しくなれない理由は、子供が知っている
http://d.hatena.ne.jp/fromdusktildawn/20060809/1155111327
0312nobodyさん2006/10/03(火) 01:52:36ID:???
>>311
なんでいきなりそんなリンク貼るんだ?
っていうかその記事書いてるヤツって何様のつもりなんだろう・・・。
0313nobodyさん2006/10/03(火) 10:22:54ID:???
>>311
ひがんでるようにしか見えないんだが。
0314nobodyさん2006/10/03(火) 11:16:10ID:???
>>308
一部は被ってるだろうけど、全体でみるとそうではない気がする。
すごーく普通の一般人って感じが結構多いから。
例にあげたコミュでも見てみたら?
0315nobodyさん2006/10/03(火) 11:54:28ID:???
もっと画期的なアイデアはないの?
0316nobodyさん2006/10/03(火) 12:00:42ID:???
> もっと画期的なアイデアはないの?

vox インスパイアを livedoor より先に出す。
0317nobodyさん2006/10/03(火) 13:45:48ID:???
>>314
いや、問題は「すごーく普通」を装ったクソ2ちゃんねらーが
かなり潜伏しているという点だ。

mixiで普通のフリをして仕入れた情報を2ちゃんで暴露。
あるいはヲチ対象をmixiで見つけて2ちゃんでヲチ。
これは十分ありうるだろう。

そういう2ちゃん的な気持ち悪い感じを、本当に「普通の」人たちが気付き始めてきたようで、
みんなどんどんコミュニティから離れていっている。
0318nobodyさん2006/10/03(火) 14:00:29ID:???
> みんなどんどんコミュニティから離れていっている。

具体的に数字出してもらわないと話にならないな。
0319nobodyさん2006/10/03(火) 14:08:39ID:???
>>317
> いや、問題は「すごーく普通」を装ったクソ2ちゃんねらーが
> かなり潜伏しているという点だ。
2chユーザでmixiやってる人は結構居るが、クソ2ちゃんねらーとやらは本当にそいつらか?

> mixiで普通のフリをして仕入れた情報を2ちゃんで暴露。
> あるいはヲチ対象をmixiで見つけて2ちゃんでヲチ。
> これは十分ありうるだろう。
ありえるってかSNS・ネットwatchでやってる奴も居るな。
ただ、「ありえる」と「蔓延」は違うぞ

> そういう2ちゃん的な気持ち悪い感じを、本当に「普通の」人たちが気付き始めてきたようで、
> みんなどんどんコミュニティから離れていっている。
何この俺理論は、ここに書き込みしてるのに2chに何か恨みでも?どこかのスレで叩かれてた人ですか??
0320nobodyさん2006/10/03(火) 17:52:42ID:???
スク水なんて,ここは変態の巣窟だな。
0321nobodyさん2006/10/03(火) 18:05:47ID:???
>>316
これか。
MovableTypeをSNS風に仕立てたわけか。

http://www.vox.com/
http://www.sixapart.jp/vox/
Vox はシックス・アパートが開発した、これまでにない、新しいブログ・サービスです。
Vox では、従来のブログの機能に加えて、柔軟なアクセス制限が可能です。
例えば、1枚の写真、ひとつの記事単位で見せる相手や、コメントをもらうグループを設定できます。
子供の写真は 家族だけに公開 したり、恋人との話は 友人だけに公開 したり、きれいな風景写真が取れた時は 全世界に公開 することができます。
写真や動画をアップロードすることも、本や音楽のレビューを書くのも、ものの数クリックで完了します。
携帯電話での利用(投稿・閲覧)にも対応しています。
あなたの生活を一新するブログ・サービス Vox 。
ぜひお試しください。
それでは Vox でお会いしましょう。
0322nobodyさん2006/10/03(火) 19:15:02ID:???
>>317
被害妄想じゃね?
例えそれが一部にあったとしても。
0323PHP2006/10/03(火) 20:00:12ID:???
SNSユーザーのログイン/ログアウト情報は、どのように持たせたら良いでしょうか?
PEAR::Authを使わなくても、sessionで$is_login = 1;とかログインのフラグを持たせておけば良いですかね?
0324へっぽこ君 ◆vPBS8pifwk 2006/10/03(火) 20:06:14ID:???
>>323
PHPはわからないので参考になるかわかりませんが
チラ裏の場合cookieにlogin=1 or 0 でログイン/ログアウト状態を記録してまつ。
0325PHP2006/10/03(火) 20:21:02ID:???
クッキーが使えない携帯電話は、とりあえずアクセス不可でもいいか。
(先にPC用のページを作って、後で携帯用ページを作るときにどうするか考える)

PEAR::Authを使えば、セッションハイジャックとか気にしないでいいのだろうか?
=セキュリティが甘いシステムにはしたくないなー。
0326PHP2006/10/03(火) 20:25:44ID:???
PHPサイバーテロの技法
http://www.amazon.co.jp/exec/obidos/ASIN/4883374718

P.104 section 3-13
第三者のセッションを乗っ取る
セッションハイジャック
0327PHP2006/10/03(火) 20:29:28ID:???
p.105 対策1 session関連の設定変更

session.use_trans_sid = 0
session.use_cookies = 1
session.use_only_cokkies = 1
session.auto_start = 0

○メリット
セッション固定を利用した攻撃をほぼ完全にシャットアウトできる。
デフォルトのセッションハンドらを利用したXSS攻撃や、HTTPレスポンス分割攻撃も、同時に防ぐことができる。

×デメリット
クッキー未対応端末については、別途、GETなどを利用したセッション管理システムを作らなければならない。
0328PHP2006/10/03(火) 20:34:28ID:???
対策2 IPアドレスチェック

鍵に結びついたセッションについてIPアドレスも保存しておき、異なるIPからの利用がなされた時点でセッションを破棄する。
インターネットカフェなどでは、グローバルIPを狭い範囲で「回して」使うこともあるため、IPアドレスの32bit全てではなく、上位16bitだけをチェックする方法も検討すべき。
上位16bitだけのマスクでも、ハイジャック対策としては十分に効果を発揮する。

○メリット
セッション保護としてはもっとも強固
実装が簡単
唯一、セッション鍵を盗まれてからの対策になり得る

×デメリット
携帯電話など、アクセスの都度、IPが大きく変わるようなクライアントには利用不可能 ※24

※24…パソコンからでも、NATの内側からのアクセスで、その都度IPが変わる環境もあります。
(ロードバランサによるラウンドロビンなど)
0329PHP2006/10/03(火) 20:39:56ID:???
対策3 セッション鍵の定期的な変更

一定時間毎に、新しいセッション鍵に変更する。
具体的には、session_start() 直後に、session_regenerate_id(true)を実行する。
PHPバージョンが、5.1.0以降であれば、session_regenerate_id()に引数trueを与えることで、自動的に古いセッション情報を破棄してくれる。

session_start();
session_regenerate_id(true);

○メリット
IPアドレスが変わる端末からのアクセスにも利用可能

×デメリット
session_regenerate_id()において、引数trueをサポートしているのは、PHPバージョン5.1.0以降であるため、5.1.0未満のバージョンでは、古いセッション情報を消すコードを自前で用意する必要がある ※25

※25…古いセッション情報を消さない限り、新しいセッション鍵を用意しても、その時点までに保存された情報が盗み出される可能性は残ります。
0330PHP2006/10/03(火) 20:42:17ID:???
補足説明

セッション関係は、攻撃側にとってねらい目の多い箇所であり、防御側としては総合的に対策する必要がある。
P.132の4-2も参照のこと。
0331PHP2006/10/03(火) 20:50:56ID:???
P138 4-2-4 セッション鍵の変更

session.use_only_cookies=1 と設定することで、「セッション固定」攻撃はほぼ防御できますが、
XSS脆弱性やネットワーク盗聴などの手法でセッション鍵を盗まれる恐れは常にあります。
その対策として有効なのは、定期的なセッションIDの変更です。
PHPバージョン4.3.2以降であれば、session_regenerate_id()という関数を利用できます。

PHPバージョン5.1.0以降であれば、session_regenerate_id(true);と引数を渡すことで、自動的に古いセッションデータも削除されますが、
PHPバージョン5.1.0未満&セッションをデフォルトのfilesハンドらで利用している場合は、古いセッションデータを明示的に消す必要があります。

ただ、鍵を再生成した直後は、古いセッションデータファイルも開かれたままであるため、削除する方法がありません。
いったん、セッションに積んで、次のアクセスの際に消すようにするのが良いでしょう。

サンプルコードは以下の通りです。
0332PHP2006/10/03(火) 20:57:47ID:???
<?php
session_start() ;
$session4remove = @$_SESSION['old_session_id'] ;
$old_session_id = session_id() ;
if ( ! empty( $session4remove ) ) {
  foreach ( explode( ';' , session_save_path() ) as $path ) {
    if ( @unlink( $path . '/sess_' . $session4remove ) ) break ;
  }
}
if ( session_regenerate_id() ) {
  $_SESSION['old_session_id'] = $old_session_id ;
}
?>

↑インデント(字下げ)の部分は全角スペースになってます。
0333nobodyさん2006/10/03(火) 21:17:08ID:???
勉強になるわ。
0334PHP2006/10/03(火) 21:17:56ID:???
>>324
なるほど。セッションも便利ですよ。

「PHP セッション 認証」でGoogle検索したら、こんなページ出ました。

PHP第3回:PHP応用(セッション管理/認証)
www.stackasterisk.jp/tech/php/php03_06.jsp

認証とセッション管理
http://www.phpbook.jp/auth/

セキュリティ性を向上させる為に、以下のことに注意してください。
http://chibinowa.net/webapp/php/phpnote/security.html

安全なウェブサイトの作り方
http://www.ipa.go.jp/security/vuln/20060131_websecurity.html
http://www.ipa.go.jp/security/vuln/documents/2005/website_security.pdf

セキュア・プログラミング講座
http://www.ipa.go.jp/security/awareness/vendor/programming/
セキュア・プログラミング講座 「WEB プログラマコース」
http://www.ipa.go.jp/security/awareness/vendor/programming/a00.html
0335PHP2006/10/03(火) 21:27:12ID:???
まとめがあったw
PHPメモ
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html

PHP でセッション変数、Cookie を使用する際のセキュリティ対策について
http://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#PHP_Session

> session_id() の返り値は外部からの入力により改ざん可能ですので、session_id() の値が期待通りかどうかを確認してから使用してください。
> 詳しくは、セッション関連の処理で注意すべきクロスサイトスクリプティング問題を参照してください。

…PHPまかせじゃセッションってセキュリティ低いのかな?
まぁいいや。
セッションの$login=1;でログインフラグを持たせることにしよう。
0336へっぽこ君 ◆vPBS8pifwk 2006/10/03(火) 21:31:01ID:???
すご。早いとこPHP覚えよう。
参考にさせていただきまっす。
0337PHP2006/10/03(火) 21:32:54ID:???
ハンドら → ハンドラ

タイポ訂正w
0338PHP2006/10/03(火) 21:40:09ID:???
>>336
今日、でかい本屋に行ったら、Ruby関係の新刊がたくさん並んでました。
Rubyも勉強してみようかなーと思いました。
(=Ruby on Railsを一回使ってみたい。)
0339nobodyさん2006/10/03(火) 21:42:35ID:???
独占入手!mixi誕生時の企画書と画面プロトタイプを特別公開
http://japan.cnet.com/news/media/story/0,2000056023,20257747,00.htm
0340PHP2006/10/03(火) 21:45:25ID:???
XOOPSみたいに、プラグインで後から機能を追加できるようにするには、どういう工夫が必要かな?
■ このスレッドは過去ログ倉庫に格納されています