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

PHPでユーザ個別ページを作ろうと思っています。通常ログイン形式を取ると思うのですが、その煩わしさを省きつつもある程度クローズされたものにしたいと思っています。

例えばMySQLデータベースのidとnameを使って、「http//:○○/page.php?id=5&name=taro」という風にすることができると思うのですが、調べてもでてきません(PHPを始めてまだ2週間ほどの素人なので、ご容赦ください)。さらにmetaタグでnoindex,nofollowにすれば、認証不要でこのURLを知っている人しかアクセスできないようにできると考えています。

その方法についてご存知の方、ご教授いただけませんでしょうか?
(参考URLなど教えていただけると幸いです)

どうぞよろしくお願いします。


●質問者: さとし
●カテゴリ:ウェブ制作
✍キーワード:HTTP MySQL name nofollow PHP
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● pahoo
●20ポイント

会員サイトを構築するような場合、会員IDとパスワードの管理にMySQLが必須というわけではありません。

ログイン画面後のページも会員のみがアクセスできるように制限をかけなければならないので、セッションについて学んでください。

ログイン画面を作る」が参考になると思います。

なお、パスワードをGETで渡すことは危険なのでやめてください。インターネット上を素のままのパスワードが行き来することになり、途中でパスワードが盗まれてしまうからです。


もしPHPによるログインにこだわらないのであれば、BASIC認証(基本認証)でアクセス制限をかける方が手っ取り早いでしょう。これはWebサーバの設定によります。

Apacheであれば、「基本認証でアクセス制限をかける方法」が参考になります。


さらにmetaタグでnoindex,nofollowにすれば、認証不要でこのURLを知っている人しかアクセスできないようにできると考えています

これは、おそらくGoogle検索に引っかからないというだけで、他の検索エンジンに拾われてしまう可能性があります。方法としては、お勧めできません。


2 ● kn1967
●19ポイント

>metaタグでnoindex,nofollowにすれば、

>認証不要でこのURLを知っている人しかアクセスできないようにできると考えています。


META が機能するという時点で、そのページにアクセスできているという事ですし

noindex,nofollow は「サーチエンジンへの登録をしないでくださいね」という

「お願い」ですから、相手が「お願い」を無視すれば、そのまま使われてしまいます。


ログイン形式が煩わしいという事ですが必要な処置です。 面倒という方に向けては

ログインページに「次回から自動的にログインする」などのチェックボックスを設けておいて

チェックが入っていれば cookiesにidとパスワードを保存するという処理を行えばよろしいでしょう。

使い方はあちこちで紹介されているので割愛します。

googleでphpとクッキーにて検索


さらに、ログイン情報などを外部にもらさないようにするためには、

出来れば SSL での通信に対応したサーバを用いる必要もあるでしょう。


覚える事はまだまだ多々ありますが、徐々に覚えていってください。


3 ● QuestR2
●6ポイント

http://allabout.co.jp/internet/hpcreate/closeup/CU20041220A/


4 ● kent0608
●45ポイント ベストアンサー

URLを指定することで特定のユーザのページを参照できる仕様ですと、URLを一部書き換えるだけで、第三者が任意上のユーザページを参照できる

ことになります。

例)

ttp://hogehoge/index.php?id=000001

(悪意のあるユーザ)id=000003番の情報を知りたい

ttp://hogehoge/index.php?id=000003 ←下一桁を書き換え

id以外にも、非公開のnameパラメータを付与し、idのパラメータ操作だけでは参照できないようにした場合でも

公開ニックネームから非公開のnameパラメータを予想することで、特定のURLを参照することができます。

ttp://hogehoge/index.php?id=000003&name=????

(悪意のあるユーザ)id=000003番のnameがわからないとアクセスできないな

(悪意のあるユーザ)公開プロフィールのニックネームが花子か、それならnameはhanakoに違いない

ttp://hogehoge/index.php?id=000003&name=hanako

偶然一致すれば、アクセスが可能


簡略的に認証を実装したいのであれば、pahooさんが提案されているBASIC認証を導入するのが良いかもしれませんが

見た目や認証の挙動が、Webアプリケーションのデザインと上手くマッチしない問題があります。

PHPを始めて2週間程度ということは、まだフレームワーク導入には至っていませんよね?

Webフレームワークを活用することでセキュアなWebアプリケーションを比較的短期間で実装することができます。

車輪の再開発を避けるために、認証プラグインなどもありますので、まずは有名どころのWebフレームワークを学習されてはいかがでしょうか

http://www.phppro.jp/article/framework/framework.php

関連質問


●質問をもっと探す●



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