- PR -

別ウィンドウのリファラ

1
投稿者投稿内容
insomnia
会議室デビュー日: 2006/02/16
投稿数: 4
投稿日時: 2006-02-16 13:37
いつもお世話になっております。

A画面からJavaScriptでwindow.opneを使い、新規ウィンドウにB画面を表示する際に
新規ウィンドウのリファラがNothingになります。
新規ウィンドウのリファラにA画面のURLは入らないのでしょうか?
入らない場合にA画面のURLを入れる方法はあるのでしょうか?

作成はASP.NET+VB.NETでやっております。


<サンプルプログラム>
A画面
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click

RegisterClientScriptBlock("startup", _
"<script language='JavaScript'> window.open('B画面','new') </script>")

End Sub

B画面
Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' ページを初期化するユーザー コードをここに挿入します。

If Not IsNothing(Me.Page.Request.UrlReferrer) Then

Me.Label1.Text = Me.Page.Request.UrlReferrer.ToString

End If

End Sub

よろしくお願いいたします。

[ メッセージ編集済み 編集者: insomnia 編集日時 2006-02-16 13:39 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-18 21:57
 どういう目的があるのでしょう?

 目的があって、その目的を達成するための手段として、リファラを参照しようと考えられたのだと思いますが、その目的とは何でしょう?


 ブラウザを立ち上げて、アドレス欄に直接アドレスを入力したり、「お気に入り」から選択すると、リファラには何も入りません。それと同じではないかと思います。

 たとえば、アンカー要素でリンクするとか、特定のリクエストクエリがあれば指定されたページへリダイレクトするとかすれば、リファラは入ると思います。

 ただし、アプリケーションの配置先によっては、セキュリティ上のリスクがあります。

〆 written by Jitta@わんくま同盟 on 2006/02/18
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-02-18 22:24
引用:

insomniaさんの書き込み (2006-02-16 13:37) より:

A画面からJavaScriptでwindow.opneを使い、新規ウィンドウにB画面を表示する際に
新規ウィンドウのリファラがNothingになります。
新規ウィンドウのリファラにA画面のURLは入らないのでしょうか?


Invalid な HTML ですが target 属性を使ったリンクで代用するとか。
<a href="url" target="_blank">アンカーテキスト</a>

まあ、Invalid と言いつつも、JavaScript よりはマシだなんて思ってますが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
insomnia
会議室デビュー日: 2006/02/16
投稿数: 4
投稿日時: 2006-02-20 10:39
じゃんぬねっとさん、Jittaさんご回答ありがとうございます。

<Jittaさんへ>
>どういう目的があるのでしょう?
> 目的があって、その目的を達成するための手段として、リファラを参照しようと考えられたのだと思いますが、その目的とは何でしょう?

URL認証をするためにリファラを使おうと思っています。


>特定のリクエストクエリがあれば指定されたページへリダイレクトするとかすれば、リファラは入ると思います。

特定のリクエストクエリとはどのようなものでしょうか?


<じゃんぬねっとさんへ>

>Invalid な HTML ですが target 属性を使ったリンクで代用するとか。
><a href="url" target="_blank">アンカーテキスト</a>
アンカーを代用してみたところやっぱりwindow.openと結果は同じでした。
URL直接入力と同じことになってるみたいです。

かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2006-02-20 11:02
引用:

insomniaさんの書き込み (2006-02-20 10:39) より:

URL認証をするためにリファラを使おうと思っています。



リファラって所詮ただのヘッダ情報なので
いくらでも書き換え可能な情報ですよね

あと、ブラウザやプロキシの仕様で入ったりはいらなかったりするので
認証というものに使うにはあんまり良く無いように思えます。
insomnia
会議室デビュー日: 2006/02/16
投稿数: 4
投稿日時: 2006-02-20 11:10
かるあさんご回答ありがとうございます。

>リファラって所詮ただのヘッダ情報なので
>いくらでも書き換え可能な情報ですよね

>あと、ブラウザやプロキシの仕様で入ったりはいらなかったりするので
>認証というものに使うにはあんまり良く無いように思えます。

やっぱりそうですよね…他の方法を考えて見ます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-02-20 20:25
 この認証が、アドレスを直接入力されることによる表示を抑制するためのものなら、
* セッション変数に「乱数」を入れる。
* クエリにその乱数を追加する。
* 表示先ページで、両方の乱数を確認する。

というような方法で、リファラを参照しなくても、認証することが可能です。
# ロジックの検証はしてね

〆 written by Jitta@わんくま同盟 on 2006/02/20
insomnia
会議室デビュー日: 2006/02/16
投稿数: 4
投稿日時: 2006-02-21 10:39
Jittaさんご回答ありがとうございます。

引用:

Jittaさんの書き込み (2006-02-20 20:25) より:
 この認証が、アドレスを直接入力されることによる表示を抑制するためのものなら、
* セッション変数に「乱数」を入れる。
* クエリにその乱数を追加する。
* 表示先ページで、両方の乱数を確認する。

というような方法で、リファラを参照しなくても、認証することが可能です。
# ロジックの検証はしてね




ロジックを検証してみます。
1

スキルアップ/キャリアアップ(JOB@IT)