- PR -

アドレス直打ちについて

投稿者投稿内容
がちょぴん
会議室デビュー日: 2003/06/26
投稿数: 7
投稿日時: 2003-07-01 14:40
JSPなりサーブレットなりのアドレスを直打ちした際に、規定のページからでないとアクセスできないようにしたいのですが、セッションを使わずに実現する事はできるのでしょうか?
よくあるログイン画面からでないとページが見れないというやつです。(直アドはエラーにする)
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2003-07-01 15:47
がちょぴんさんの書き込み (2003-07-01 14:40) より:
>JSPなりサーブレットなりのアドレスを直打ちした際に、規定のページからでないとアクセスできないようにしたいのですが、セッションを使わずに実現する事はできるのでしょうか?
よくあるログイン画面からでないとページが見れないというやつです。(直アドはエラーにする)

よくあるのは、HTTPヘッダのRefererを見るという手段です。Refererは偽造可能なので
確実な手段ではないですが、通常のブラウザからのアクセスであれば大丈夫でしょう。
がちょぴん
会議室デビュー日: 2003/06/26
投稿数: 7
投稿日時: 2003-07-01 15:55
なるほど〜、勉強になりました。
さっそく調べてみます。
ukさんありがとうございました!。
(株)ぽち
ぬし
会議室デビュー日: 2002/09/10
投稿数: 376
投稿日時: 2003-07-01 16:08
引用:

ukさんの書き込み (2003-07-01 15:47) より:
よくあるのは、HTTPヘッダのRefererを見るという手段です。Refererは偽造可能なので
確実な手段ではないですが、通常のブラウザからのアクセスであれば大丈夫でしょう。




こんにちわ。

この手の話し(アドレス直打ち)はWEB系のシステム開発を行っていると
かなり頻繁に出てくる話しですよね。

これが最適だ!という方法は結局のところないので?と思っています。

完璧にやりたいのなら、画面遷移ごとにsessionと画面側に暗号化
でもしたIDを持たせて、正常な画面遷移かどうかチェックするとか?

僕はGETをはじけば、それだけ十分のような気もしているのですが・・。
# あ、ログインしている人だけ見れるページっていうのは
# そもそもsessionの中になんかフラグ持って判断すればいいですよね。


なんか結局この手の話しは

・「GETはじきますよ!」
・「POSTだけでもブラウザ経由じゃなくてHTTPリクエスト送信できるぜ」
・「そんなハッカーな!」

まぁなんでもできるので、リスクはなんでもあるんですよね。
refererもそうですよね。

ポイントとしては、なんでもいいから不正な操作をされた時
「不正なデータ」が登録されたりしないかどうか。

ではないでしょうか?

これがなければ、refererでもPOSTでもOKだと思いますけど。
みなさんはアドレス直打ちをどのように回避しているのか
僕もちょっと知りたいです。
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2003-07-01 19:00
> JSPなりサーブレットなりのアドレスを直打ちした際に、規定のページから
> でないとアクセスできないようにしたいのですが、セッションを使わずに
> 実現する事はできるのでしょうか?

公開するJSPはひとつだけにしておいて、あとはすべてincludeで対処するとか
いかがでしょうね。
当然何らかの値をもらってどれをincludeすべきかは判断しなきゃいけないんですが。

でも、セッションを使わないとたいていのことはできないと思うんですけど?
makura
ベテラン
会議室デビュー日: 2002/11/27
投稿数: 90
投稿日時: 2003-07-01 19:06
こんにちは、makuraです。

私も Referer に一票。

ぜんぶPOSTというのも確かに効果ありそうですね。

POSTの場合は応答がキャッシュされないのが既定の動作なので、
「画面がキャッシュされてしまってうまく回らない」というトラブルも防げるというおまけ付きです。
#キャッシュ禁止にするHTTPヘッダを各ページに一律にセットすればいいだけですけどね。

でも私はキャッシュを最大限に活用する派なので、ぜんぶPOSTというのは抵抗が
既定がキャッシュ禁止のものにヘッダでキャッシュ許可するのはなんとなく気持ち悪いと思うし、GETとPOSTは本来の姿のまま使い分けたいという思いもあります。現実には機能面の違いでしかなくなっているので、割り切って考えないといけないんでしょうけどね。
toshi
会議室デビュー日: 2002/03/07
投稿数: 10
お住まい・勤務地: 東京
投稿日時: 2003-07-02 09:44
こんにちは。

サーブレットからJSPにForwardという前提ですが、web.xmlに
<security-constraint>
<web-resource-collection>
<web-resource-name>test</web-resource-name>
<url-pattern>*.jsp</url-pattern>
</web-resource-collection>
<auth-constraint></auth-constraint>
</security-constraint>
を追加すると、JSPに対し直接アクセスできなくなるようです。

サーブレットの直打ちは、どう対応しましょう???

参考までに。
がちょぴん
会議室デビュー日: 2003/06/26
投稿数: 7
投稿日時: 2003-07-02 10:30
皆さんのおかげで知識が増えました。ありがとうございます。
セッションを使わずにというのは、いちいち設定するのが面倒だったので、
どこかで一括管理できないかなーと思ったからです。
そう甘いもんじゃないですね。
でもセッションを使う方法しか今まで知らなかったので、
いろいろな技を聞けて感謝しています。
これからもなにかありましたらよろしくお願いいたします。

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