メイン
   XOOPS2バグ
     登録ユーザー以外でも、ユーザー情報が見れてしまう

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
minahito
投稿日時: 2004/2/3 16:38
長老
登録日: 2003/9/7
居住地: ALL-IN!
投稿: 1608
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう
引用:
バグではなければ、何か設定すると見えなくなるのでしょうか?

 この件、バグではなく、xoops の仕様です。
 そういう思想で作られとるということですね。

 ところで改修方法ですが、サイトによりけりだと思うのですけれど、たとえば「ニュース」なんかはゲスト状態でも閲覧できるように設定しているケースは多いですよね?
 ニュースでも投稿者は表示されますし、そこからユーザーインフォにたどり着くことはできます。
 そこで権限がないとけっ飛ばされるのも切ない気がします。

 userinfo.php の、

1
2
if (is_object($xoopsUser)) {
}

 の括りの末端に、

1
$xoopsTpl->assign ( 'xoops_user', true );

 とかを入れて、テンプレート側で現在アクセスしているのがユーザーさんかゲストさんかは判別して表示を切り替える、というのはどうでしょうか?

 テンプレートで、ユーザーさんにだけ見せたい情報の tr タグ前、tr タグ後にコードを挿入し、

1
2
3
4
5
6
<{if $xoops_user == true }>
        <tr valign="top">
          <td class="head"><{$lang_location}></td>
          <td class="odd"><{$user_location}></td>
        </tr>
<{/if}>

 ってな感じにすると、ユーザーさんとゲストさんに見せる情報の切り替えが効くし変更をテンプレート内に押し込めるのでバージョンアップも楽になるかと……

 上の例だと、ログインしているとユーザーさんの居住地が表示されるが、ログインしていなければ表示されない、という動きをすると思います。

onokazu
投稿日時: 2004/2/4 19:42
管理人
登録日: 2002/1/25
居住地:
投稿: 1587
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう

minahitoさんと同じ方法ですが、XOOPSでは<{$xoops_isuser}>というタグがデフォルトで用意されていますので、

<{if $xoops_isuser == true }>

ユーザ情報関連のHTML

<{/if}>

で大丈夫かと思います。


----------------

Xiggの開発者..一応(^^;

Xigg 1.10リリース(2008/5/10)

minahito
投稿日時: 2004/2/4 22:10
長老
登録日: 2003/9/7
居住地: ALL-IN!
投稿: 1608
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう
引用:
XOOPSでは<{$xoops_isuser}>というタグがデフォルトで用意されていますので、

 知りませんでした……お恥ずかしい…… :-o

 デフォルトで出力されている変数には他にもあるんでしょうね。
 きちんと把握しとかなきゃいけませんね。

onokazu
投稿日時: 2004/2/4 22:33
管理人
登録日: 2002/1/25
居住地:
投稿: 1587
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう
引用:
minahitoさんは書きました:
 知りませんでした……お恥ずかしい…… :-o

 デフォルトで出力されている変数には他にもあるんでしょうね。
 きちんと把握しとかなきゃいけませんね。

いえいえ、ちゃんとドキュメント化されていないのが悪いのだと思います。 :-(
一番簡単な方法はSmartyのデバッグを有効にしてしまうことでしょうか。そうすればデフォルトのタグは全て表示される(ポップアップウィンドウに)かと思います。


----------------

Xiggの開発者..一応(^^;

Xigg 1.10リリース(2008/5/10)

masapon
投稿日時: 2004/2/10 21:34
新米
登録日: 2004/1/23
居住地:
投稿: 13
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう

こんばんは。

関連するご質問がいくつかあるのですがお答え願いますでしょうか。

(1)任意の項目に対して、サイト管理者だけが見ることができる設定はできますでしょうか。

ユーザー情報に例えば電話番号なども登録できたら都合が良い
のですが、公開すべきでない個人情報は登録ユーザーにも見せたくないのです。

(2)そもそもユーザー登録画面で、プライバシーにかかわる個人情報を登録しても問題ないのですか。Xoopsに詳しい方であれば
個人情報をのぞけてしまうという状況であれば、個人情報の登録は避けざるを得ないと考えております。

以上ですが、よろしくお願いします。

minahito
投稿日時: 2004/2/10 21:44
長老
登録日: 2003/9/7
居住地: ALL-IN!
投稿: 1608
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう
引用:
(1)任意の項目に対して、サイト管理者だけが見ることができる設定はできますでしょうか。

 設定ではなく、テンプレートで対処することになろうかと思います。
 ちゃんと見てませんが、ひょっとするとコアシステムから標準で管理者かどうかの識別も飛んでいるかもしれません。
 ダメなら一部プログラムに手を入れれば大丈夫かと思います。

引用:
Xoopsに詳しい方であれば
個人情報をのぞけてしまうという状況であれば、個人情報の登録は避けざるを得ないと考えております。

 そこの問題の本質は xoops 云々ではありません。

 入力された情報は、それを読み出すプログラムによって読み出されます。そこを塞ぐことです。

 たとえば電話番号を「居住地」に入力させるように改良した場合、userinfo まわりを直せばいいということにはなりません。
 それを読み出すモジュールは全部塞いでまわらなくてはいけません。
 この標準フォーラムがそうです。
 userinfo のテンプレートを修正しても、このように思わぬところでポロッと個人情報が露出することがあります。

 「ICQ」などは読み出すモジュールなどは一見無さそうなので、userinfo のテンプレートを塞げば済みそうですが、「xoopsゲストブック」というモジュールはこれを読み出して表示してしまうので、これをインストールしていると個人情報が漏れてしまうことになります。

 データーベースにデータが入っている限りは(比較的)安全です。プログラムがそれを読み出す機能を持ってるがために個人情報が危険にさらされるという理屈ですから、とにかくそこを塞ぐことです。

 データーベースからデータを読み出し表示するプログラムの経路をすべて塞げば、xoops に詳しかろうが詳しくあるまいが、アクセスはできない、という理屈になります。

 一番よいのは、既存のユーザー情報フィールドを使わず、データーベース表の列ごと新設してしまうことです。
 プログラム的手間は発生しますが、当然、他人が開発したモジュールはその列の存在を知りませんから、間違っても読み出されることはないと思います。

 過去ログを漁れば、そのへんのハックの方法も出ていると思います。

suin
投稿日時: 2004/2/10 21:46
長老
登録日: 2003/11/18
居住地:
投稿: 433
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう
引用:

(1)任意の項目に対して、サイト管理者だけが見ることができる設定はできますでしょうか。

テンプレート編集で
<{if $xoops_isadmin != false}><{/if}>
でくくれば管理者だけに表示されるようになると思います。

引用:

(2)そもそもユーザー登録画面で、プライバシーにかかわる個人情報を登録しても問題ないのですか。

セキュリティー的にはどうなんでしょう?
私も全くもって安全かは少し自信がないので、自分のサイトでは個人情報といっても誕生日、居住都道府県くらいにとどめていますけれども…。 :-?

masapon
投稿日時: 2004/2/10 22:36
新米
登録日: 2004/1/23
居住地:
投稿: 13
Re: 登録ユーザー以外でも、ユーザー情報が見れてしまう

minahitoさん、tmstmsさん早速のご回答ありがとうございます。

よく理解できました。

ただ、いまの自分のスキルでは読み書きするプログラムを全て
追ってそこを塞ぐことはあまりにも危険なのでやめときます。

現状ではプライバシーにかかわる個人情報はユーザー情報に
設けない方向で進めていこうと思います。

« 1 (2)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

 
To Top