プロが教える店舗&オフィスのセキュリティ対策術

Cookie を使わず、訪問した状態を一定期間、維持する方法、
プログラムを使わず、ユーザエージェントの取得する方法を考えています。
これらは、基本的にウェブでの使用を考えているのですが、
何か良い方法はありませんでしょうか ?

みなさま、どうぞよろしくお願いいたします。

A 回答 (3件)

質問の意味がわからないので補足してください。


>Cookie を使わず、訪問した状態を一定期間、維持する方法
 どこ(誰)が保存するのですか?
 Cookieは、ユーザー側が「訪問した状態を一定期間、維持する方法」方法で、サーバー側は無関係です。サーバーがHTTP応答ヘッダに含めて発行する「割符」をユーザーエージェントに対して送信し、それをユーザーエージェントが保存しておくものです。次回のHTTP要求のときに、HTTP要求ヘッダに含めてサーバーに送信して、サーバーはそれを解析して利用するだけで、サーバー側には一切データはありません。Cookieはそのための手法です。

>プログラムを使わず、ユーザエージェントの取得する方法を考えています。
 ユーザーエージェントとは、Webで使用されるプログラムのことで、たとえばfirefoxとかInternet Explorerがユーザーエージェントです。「プログラムを使わず」の意味がわかりません。ユーザーエージェント自体がプログラムなのですから。
 また、「ユーザエージェントの取得する方法」は助詞(てにおは)がおかしいのでは??。ユーザーエージェント【を】取得する方法でしたら、取得と言う動作自体がサーバーのプログラムの動作ですので、『プログラムを使わず、ユーザエージェントを取得する方法』だと矛盾してしまいます。
 そもそもユーザーエージェントはブラウザなどのプログラムの型式のようなものですから、もし【主語がユーザーエージェント】でしたら、取得するも何もないですよね。たとえば私が使用しているユーザーエージェントは
Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20100101 Firefox/16.0
となります。

 ユーザーエージェント自体は、サーバーに対してHTTP要求などをするときに、必ずと言って良いくらいCookieとともに含まれていますが、それを取得するためには、必ずプログラムが必要です。しかし、Cookieのようにユーザー(ユーザーエージェントやその状況)を特定することは不可能です。同じブラウザを使用している人はすべて同じですから。

よって、質問の一行目以降をすべて無視して
>Cookie を使わず、訪問した状態を一定期間、維持する方法、
 だけについてでしたら、【プログラムは必須ですが】QUERY_STRINGやPATH_INFOを使用します。しかし、Cookieと異なりサーバー側に情報を保存しなければなりませんので、ややこしくなることと、セキュリティ上で穴だらけになります。もちろんPOSTを使って標準入力で保持するとその問題は回避できるでしょう。SSL通信を使えばCookie並みにセキュリティは保てるでしょう。
QUERY_STRINGとは、URL中の?以降
PATH_INFOとは、ドメイン名以降?まで

[例]
Enviroment Variable and FORM,COOKIE ( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi/oshie … )
で、/oshiete.goo.ne.jp/qa/8136870.htmlがPATH_INFO,name=yuki-01がQUERY_STRINGになります。
 
    • good
    • 0

>Cookie、UAともに、プログラムが使用できない条件下を想定した代替えとして、考えていました。



プログラムを使わないのであれば、「訪問」とか「一定期間」とか意味をなさないのですが、何か勘違いをなさっているのでは?

>>プログラム以外の何で取得したいのですか?

この質問に回答してもらえば、そのあたりが明らかになると思います。
    • good
    • 0

>Cookie を使わず、訪問した状態を一定期間、維持する方法、



URLにCookie相当を組み込めば出来ます。
http://example.com/foo?sessid=xxxxxx
みたいな。

>プログラムを使わず、ユーザエージェントの取得する方法を考えています。

プログラム以外の何で取得したいのですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

Cookie、UAともに、プログラムが使用できない条件下を想定した代替えとして、
考えていました。

お礼日時:2013/06/16 22:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!