一括表示

− 野ざらし言 −

[4431] 掲示板スクリプト

としき 2017/04/21(Fri) 01:01
http://toshiki.la.coocan.jp/
私のことなんで、普通に書いていたらえらく冗長な文章になってしまい。
全部捨てて要件だけ書いてみました。

以前、こちらのスクリプトの改造のお手伝いをさせていただいたときに、かなりどうでもいいことですが、ほんのちょっとだけコーディングに気を配った記憶のある部分があります。なにかというと、掲示板内へのリンクの部分の、スクリプトのパラメータの並び。記憶では、極力、?の次の最初のパラメータはmode=xxxxにするようにして、次は&no=yyyyにする、というようにしたつもりでした。でも、今、特にツリーの部分を読むと、そういう並び順になっていませんよね。

これって、私の納品したものが既にそうなっていたでしょうか。
それとも、めざらさんが書き換えてます?
私の納品したものが既にそうなっていたとすると、本人は気にしたつもりが全然そうなっていなかったということで、ちょっとばかりショック。あ、いや、気を配ったつもりが隅々まで行き届いていなかった、というほうがまだましかも。実は当時、全く気を配っていなかったのに気を配ったように記憶が改竄されている、というパターンもありうる。こちらのほうが、記憶力が危ないという意味で、もっとイヤ。

[4432] Re: 掲示板スクリプト

としき 2017/04/21(Fri) 01:08
[4431]へのコメント http://toshiki.la.coocan.jp/
えと、#4431なんですが。
書き込もうとしたら、何回も「不正なアクセス」を食らってしまいました。
そのため、一旦レスつけテストをしてみたりしました。

一体、何が引っかかっていたのでしょうか。
投稿するまでに時間がかかりすぎていたのが悪いのかな。
時間設定って何分にしています?
それとも、またぞろ、漢字1文字チェックに引っかかってしまったかな。

[4434] Re^2: 掲示板スクリプト

めざら 2017/04/23(Sun) 14:06
[4432]へのコメント http://mezala.la.coocan.jp/
> 時間設定って何分にしています?

max_gap = 3600 * 24 になってます。丸1日ですね。
minの方はスパマーへの情報開示になるので書きません。常識的な数値です。

> それとも、またぞろ、漢字1文字チェックに引っかかってしまったかな。

現在は1文字拒否はやめて,みな熟語になっています。
投稿量でもないでしょうし,何が原因でしょうね (?_?)


実は,acc_log の表示が,現在最後まで表示しきれないうちに打ち切られているため,生ログを見ていたのですが,unixtime 記録なのでなかなか特定できずにいます。

ログでは,最初の POST が「掲示板スクリプト」のタイトルで, 00:48。
のち 5回リトライ。

「書き込み統計」の表示では,はじめの2回を表示したところで中断されているようなので,表示打切りの閾値を240秒まで増やしてみたけれど,結果は同様。

あれれ?

[4436] Re^3: 掲示板スクリプト

としき 2017/04/23(Sun) 16:38
[4434]へのコメント http://toshiki.la.coocan.jp/
> ログでは,最初の POST が「掲示板スクリプト」のタイトルで, 00:48。
> のち 5回リトライ。

そうですね。トータルではそのくらいの回数、不正なアクセスで蹴られています。
なので、もしやIPアドレスか何かで私自体が制限されているかと思って、切り分けのためにレス付けテストをしてみた次第。で、こちらはパスしたので、ならば新規発言がダメなのかと、フォームの再読み込みなどいろいろとやっていたら通ってしまった、という次第。
関係ないとは思うのですが、いくつか報告。
まず、ブラウザですが、Firefoxを使っています。
で、ちょうどバージョンアップの通知が来たのでダウンロードしてプログラムの更新まではやっているのですが、その後、ブラウザの終了・再起動を行っていません。
もうひとつは、もしかしたら関係あるかもしれませんが、戻るボタンなりバックスペースなり[ALT]+[←]なりでひとつ前のページに戻ろうとすると、全然違うページに戻ってしまう、という状況が発生することがあります。そんなに頻度は高くないのですが、だからこそ、原因も不明だったりします。

とりあえず、しばらく様子を見るしかないのかなぁ。
自分のところを含め、他の場所に書き込む際には、今のところは症状が出ていませんし。

[4433] Re: 掲示板スクリプト

めざら 2017/04/23(Sun) 13:31
[4431]へのコメント http://mezala.la.coocan.jp/
> 掲示板内へのリンクの部分の、スクリプトのパラメータの並び。
> 記憶では、極力、?の次の最初のパラメータはmode=xxxxにするようにして、
> 次は&no=yyyyにする、というようにしたつもりでした。でも、今、
> 特にツリーの部分を読むと、そういう並び順になっていませんよね。

まずは,スクリプトの箇所を特定したいと思いますが,
この部分でしょうか? -の並び以外はそのまま書き込んだので,
もしかするとさらに変換されてしまうものがあるかも。

#−−−−−−−−−−−−−−−−−−−−
#  自動リンク
#−−−−−−−−−−−−−−−−−−−−
sub auto_link {
    local($_) = @_;

    s/([^=^\"]|^)(https?\:\/\/[\w\.\~\-\/\?\&\=\;\#\:\%\+\@]+)/$1<a href="$2">$2<\/a>/g;
#   s/(^|[\x81-\x9F\xE0-\xFC][\x40-\x7E\x80-\xFC]|[^0-9a-zA-Z\#\"]+)#([0-9]+)([^0-9\;\.\"])/$1<a href="$script?mode=article&amp;no=$2">#$2<\/a>$3/g;
    s/#([0-9]+)($|[^0-9a-zA-Z\"\#\$\%\&\'\(\)\=\-\^\?\<\>\;\.]|[\<][bB][rR][\>]|\n|\r)/<a href="$script?mode=article&amp;no=$1">#$1<\/a>$2/g;
    $_;
}

mode=xxxx &no=yyyy になっているようですけどね…… 別の話?

[4435] Re^2: 掲示板スクリプト

としき 2017/04/23(Sun) 16:23
[4433]へのコメント http://toshiki.la.coocan.jp/
> まずは,スクリプトの箇所を特定したいと思いますが,

一例を挙げると、mode=msgviewで記事を閲覧する際、「返信フォーム」の上に「関連記事一覧ツリー」って出ますよね。そこでのリンクの部分のパラメータの並びのことを言っています。
ツリー一括の下矢印のところは「wforum.cgi?mode=」となっているのに、個別の記事の部分のところは「wforum.cgi?no=」となっているかと思います。私の記憶では、その他の部分も全て「wforum.cgi?mode=」としたように思い込んでいたのに、そのようになっていません、ということです。

[4437] Re^3: 掲示板スクリプト

めざら 2017/04/23(Sun) 19:56
[4435]へのコメント http://mezala.la.coocan.jp/
> 私の記憶では、その他の部分も全て「wforum.cgi?mode=」としたように
> 思い込んでいたのに、そのようになっていません、ということです。

ふーむ,そこはわたしは全く手を付けない(手を出せない)ところですね。
そこまでは気にしていないので,そのまま(↓これ)になっていると思います。

        # レス記事
        } elsif ($lx != 0) {
            print "<li><a href=\"$script?no=$no&amp;reno=$reno&amp;oya=$oya&amp;mode=msgview&amp;page=$page\">$no\.$sub</a> - <strong>$name</strong> $dat $newsign\n";
        # 親記事
        } else {
            print "<dd><a href=\"$script?mode=allread&amp;no=$no&amp;page=$page\">$treehead</a> - ";
            print "<a href=\"$script?no=$no&amp;reno=$reno&amp;oya=$oya&amp;mode=msgview&amp;page=$page\">$no\.$sub</a> - <strong>$name</strong> $dat $newsign\n";
        }

 オリジナルの wforum.cgi とは,HTML の要素が違っていると思いますが,
自分が手を入れて,としきさんにお渡しした後は,全く弄っていないですね。

[4438] Re^4: 掲示板スクリプト

としき 2017/04/23(Sun) 22:31
[4437]へのコメント http://toshiki.la.coocan.jp/
>  オリジナルの wforum.cgi とは,HTML の要素が違っていると思いますが,
> 自分が手を入れて,としきさんにお渡しした後は,全く弄っていないですね。

となるとやはり、私が納品したときからそうなっていたのか。
ウチで使っているスクリプトは、可能な範囲で全て「.cgi?mode=」にしてあって、それに合わせてめざらさんのところも作ったように思っていたんですがねぇ。う〜む、細かいところの配慮が足りなかったのか、それとも記憶が改竄されているのか、今となっては真相は闇の中。

[4439] Re^5: 掲示板スクリプト

めざら 2017/04/24(Mon) 00:21
[4438]へのコメント http://mezala.la.coocan.jp/
> 可能な範囲で全て「.cgi?mode=」にしてあって、

ところで,このようにパラメタを配していないことを原因とする影響と言うか,要するに何か実害があるのですか?

わたしはちょっと思いつかなかったのですが……

[4440] Re^6: 掲示板スクリプト

としき 2017/04/24(Mon) 12:30
[4439]へのコメント http://toshiki.la.coocan.jp/
> 影響と言うか,要するに何か実害があるのですか?

理論的には、実害が発生しうる可能性がある、という程度。
業界用語(笑)では、重複コンテンツというらしい。そのまんまや。
この単語で検索しても、専門用語で、かつ、えらく詳しく解説してあるページばかりが引っかかるので要約してみます。といっても、専門用語を使わずに、そしてわかりやすく、ということを狙ったら、やっぱり長くなってしまった。

●まず、異なるURLで同一のコンテンツがあると検索エンジンに判断されてしまう可能性がある(可能性)
○すると、パワーが分散する(比喩的表現)ので、検索エンジンが表示するランキングが低下する可能性がある(可能性の2乗なので、とても小さい)
○極端な場合、検索エンジンのインデックスから完全に削除されて検索結果に表示されなくなる可能性もある
→それがどれだけ極端かというと、例えば:
・別ドメインで同一のコンテンツだったり
・意図的に検索ランキングの操作や検索からの流入量の増大を図ろうとしていると検索エンジンに判断されたとき(広告表示やその他の金儲けの場合など)
なので、ここの掲示板程度では該当しないでしょう。

●パワーの分散する原因
○URLの評価の高さを判断する要因の大きなものに、いくつリンクされているか、というものがある
・Googleを筆頭に他の検索エンジンも、この指標は採用している
・その他にも、当然、コンテンツの中身とかドメイン名とかもある
○この、いくつリンクされているかというものの判断には、よそのサイトからのほうが影響力は大きいが、サイト内でのリンクも、それなりに影響力はある
・例えば、レスのたくさんつく発言のほうがレスの全くない発言より重要、というのは直感的にわかる
○このようなことから、URLが異なると、パワーが分散してしまう

●もうひとつは、肝心な発言が検索エンジンに拾われなくなってしまう可能性がある
○検索エンジンのクローラーの能力も有限
○サイト側のリソース(クローラー並びに一般ユーザーへの応答能力)も有限
○クローラーは、存在するURLは拾おうとがんばる
○実際、この程度の掲示板なら全部拾ってくれる
・だから、実害はない
・その代わりに、重複URLが発生する可能性が発生する

と、まぁ、こういったことから、私は個人的に、できるだけ重複コンテンツが発生しないようにしたかったわけなんですよ。でも、なぜかそれができていなかった、というのが今回の発端。
なお、実害があるか否かといった観点では、konnoさんの掲示板を見るがよろし。重複コンテンツできまくりのシステムになっていますよね。結果として、検索エンジンに拾われない・表示されない発言がどれだけあるか、ということです。ま、でも、ドメインのパワーの問題もあるし、どれだけがんばっても、WELQのように軒並み検索1位、というわけには行かないでしょう。

[4441] Re^7: 掲示板スクリプト

めざら 2017/04/25(Tue) 06:13
[4440]へのコメント http://mezala.la.coocan.jp/
非常に詳細でわかりやすい解説をありがとうございます。

> 理論的には、実害が発生しうる可能性がある、という程度。

可能性があるなら,潰していきたいと思います。

えーと,パラメタの順序は mode,page,no,reno,oya の順でいいのかな……

書き換えの量が少ないのは no,reno,oya,mode,page みたいなんだけど……

[4442] Re^8: 掲示板スクリプト

としき 2017/04/26(Wed) 23:22
[4441]へのコメント http://toshiki.la.coocan.jp/
> えーと,パラメタの順序は mode,page,no,reno,oya の順でいいのかな……
> 書き換えの量が少ないのは no,reno,oya,mode,page みたいなんだけど……

一意に定まれば、何でもよろしいかと。
私が自分のところでmodeを最初に持ってきているのは、modeなしでnoありというパラメータはありえないけど、modeありでnoなしというのはありうるから、という理由からだったりします。

[4443] Re^9: 掲示板スクリプト

めざら 2017/04/28(Fri) 22:54
[4442]へのコメント http://mezala.la.coocan.jp/
> modeなしでnoありというパラメータはありえないけど、

 あ,なるほどね,納得。

 …というわけで直してみました。近ごろ何のコードも書いていないので,ひどく緊張して書き換えましたが,一応動いた。

 ご指摘ありがとうございます。

↑ このページの先頭