# 諸注意

## 目次

1. システム
   1. セキュリティについて
      1. 著者IDの危険性
      2. パスワードの安全性
      3. 日記ファイルの安全性
      4. キャッシュ機能の危険性
   2. サーバへの負荷
      1. 動的モード
      2. ログ解析
      3. 月全体アクセス
      4. 高速化
         1. NKF.pm
         2. 漢字コード無変換
         3. 自動置換の無効化
         4. エスケープ抑制無効化
   3. ディスク容量
      1. ログファイル
      2. キャッシュファイル
   4. クッキーの使用
2. 日記を書く上での留意点
   1. プライバシーについて
   2. 誹謗、中傷
   3. ネタバレ

TDSを利用して行く上での注意点について述べます。

## 1.システム

### 1.1.セキュリティについて

CGIを有効にしている場合は、 パスワード( diary_dir*/conf/.passwd) や 著者ID( diary_dir*/conf/author_id.txt) の漏洩、パーミッションの間違いなどには十分注意してください。

これらが漏れると、 悪意有る他者に勝手に書き換えられたり、消されたり、 最悪の場合システムへも侵入される危険があります。

#### 1.1.1.著者IDの危険性

著者用として使用される cookie ID は、 diary_dir*/conf/author_id.txt に記録されますが、 CGIが httpd 権限で動いている場合、 read permission は開けておかなければなりません。 すなわちサイト内の他のユーザ、あるいは悪意ある CGI によって 閲覧される危険性があります。

対策として、

- 著者ID を記録しない
  一番安全だが、著者管理ができなくなる。
- httpd を owner 権限で動かし、chmod 600 にする
  他のユーザからは見えないが、絶対安全ではなし、 サイト管理権限がなくてはいけない
- 諦める

という手段があります。

一つのマシンを幾人かで共有する場合、 その ID を author_id.txt に加えてしまうと、 他者でも同じように authorized されてしまうため、 シークレット部を閲覧されてしまう危険があります。 書き込みに関しては、パスワードを要求するため、 直接的な危険はありません。

#### 1.1.2.パスワードの安全性

日記やPIMデータの更新には、パスワードが使われます。 contrib/mkpasswd.pl により生成されたパスワードは 不可逆暗号化により diary_dir*/conf/.passwd に記録されます。 ただし crypt をサポートしていない OS の場合、 生パスワードが記録されますので注意してください。

#### 1.1.3.日記ファイルの安全性

CGIが httpd で権限で動いている場合、 日記ファイル群(*.tdf)は other の read permission を開けておかなければなりません。 よっていくら secret コマンド*を使おうとも、 他人、あるいは悪意ある CGI によって直接閲覧される危険性があります。

回避策は、

- httpd を owner 権限で動かし、diary_dir*をchmod 600 にする
  他のユーザからは見えないが、絶対安全ではなし、 サイト管理権限がなくてはいけない
- SNEW,SSUB,SECRET に知られては困ることは書かない

本当に知られたくないことはどこにも書かないのが一番です。

#### 1.1.4.キャッシュ機能の危険性

動的でかつ CGI が httpd で動いている場合、 キャッシュファイルがパーミッション 666 で保存される危険性があります。 書き込み属性がついてしまうと危険度がかなり上昇しますので、 十分留意してください。

### 1.2.サーバへの負荷

#### 1.2.1.動的モード

動的モードにしている場合、 あるいは静的でもログ、クッキー、検索、一言機能などを有効にしている場合は、 サーバへの負荷が相当量かかります。

サーバが非力な場合、あるいは反応があまりに遅い場合は、 静的モードにし上記の機能を外すようにした方が良いでしょう。

#### 1.2.2.ログ解析

ログ解析は著者にしかできませんが、 だからと言ってあまり頻繁に行わないようにしましょう。 サイズの大きなログファイルを読み込み、 かついろいろな解析を行っているので、 サーバへの負荷は多大です。

#### 1.2.3.月全体アクセス

月全体、すなわち ?199909 や d199909.html の生成は、 大きな負荷をサーバにかけます。 これを避けたい場合は、 customize.ph に

>     $AllowAllMonthly = 0;

と記述してください。

動的の場合は月別のアクセスを許さず、 静的の場合は月別の HTML を作成しないようになります。

#### 1.2.4.高速化

以下の高速化を施す事により、CPU 占有率を下げ、 サーバの負荷をさげることができます。

##### 1.2.4.1.NKF.pm

NKF.pm がインストールされていると *1、 漢字コード変換に jcode.pl ではなく NKF.pm を使用するようになります。 これを用いることにより、 処理時間を 60% 削減することができます。

##### 1.2.4.2.漢字コード無変換

tdf を euc で書き、 customize.pl の "jcode of tdf" に euc と答える *2と、 tdf の漢字コード変換を行わなくなります。

##### 1.2.4.3.自動置換の無効化

auto replace 機能をオフにすることで、 速度を 10% ほど削減することができます。

##### 1.2.4.4.エスケープ抑制無効化

自動変換にてエスケープ後単語変換禁止機能をオフにすると、 速度を 5% ほど削減することができます。

### 1.3.ディスク容量

#### 1.3.1.ログファイル

アクセス解析を有効にしている場合、 著者以外のアクセスはすべてログに記録します。 一件あたり平均 200 byte ですので、 平均アクセス 200 として 一ヶ月で約 1.2MB、一年で 14.4MB ディスクを消費する計算になります。 使用できるディスク容量が限られている場合、 こまめに圧縮、削除をしましょう。

#### 1.3.2.キャッシュファイル

最大でもカレント*＋最近一ヶ月分のキャッシュしかとらないため、 さほど影響はないでしょう。

### 1.4.クッキーの使用

クッキーをブラウザに食べさせるようにすれば、 ログ解析にて読者追跡や訪問回数調査が可能になりますが、 読者の中には、それを嫌う人も多いと思われます。

クッキーを食べるかを逐次確認するようにブラウザを設定している場合、 毎回訪れる度にその質問に答えなければならない読者も多いでしょう。 クッキーを使用する場合、 そういったコストを読者に払わせている、ということを自覚してください。

デフォルトでは、クッキーは使わない設定にしてあります。

なお、クッキーを使わない設定にしても、 manage.cgi にアクセスする事により、著者のクッキーIDを取得する事が出来ますので、 著者管理は行えます。

## 2.日記を書く上での留意点

### 2.1.プライバシーについて

日記のセキュリティについて hns では、 「人に知られたくないことは、日記に書いてはいけません」と 言及していますが、 より大きな問題は、 「他の人が、人には知られたくないこと」を 自分の日記に書いてしまうことです。

たとえば、誰といつ会った、とか、あの人がこんなことやってた、 とか、どこそこで彼を見掛けた、とか、 自分にとっては些細なことであっても、 書かれる方にとっては、 実はその情報は人に知られては困る、という場合があります。 なるべくそういうことは書かない、 あるいは固有名詞は避ける、 などの気配りが必要です。

これは日記に限らず web 全体に言えることができ、 自分と他人のプライバシーには最大の注意を払う必要があります。 人物写真の掲載なども慎重になった方が良いでしょう。

### 2.2.誹謗、中傷

他人への誹謗、中傷と受け取られかねない内容、表現は、 極力避けましょう。 特に web は、mail や news と異なり、 相手が読んでいることを前提としていません。

愚痴なども、 相手が反論できない場所で 自分の都合のように書けてしまうので、 卑怯とも受け取られます。

論理だった批評なら大いに結構ですが、 感情にまかせた陰口はやめましょう。

### 2.3.ネタバレ

Web は、mailing list や NetNews と異なり、 受動的なメディアですので、 見る側は自分からアクセスしなければなりません。 よって、情報を提供する側は、 さほどネタバレについては敏感になる必要はないでしょう。 が、ある作品について、あまりに頻繁にネタバレを載せるようであれば、 注意書きを枕に書いておくとより親切です。

あるいは、当該部分をコメントアウトしておき、'\' によって、 ネタバレの存在を示す（ソースを見れば読める）という手法もよく使われます。

*1:nkf-1.7tar.gz に含まれています。
*2:あるいは customize.ph の $TDS::Collection::TdfJcode = 'euc'; とする。

[back]
Copyright(C) 2001