X



bbs.cgi再開発プロジェクト7

レス数が950を超えています。1000を超えると書き込みができなくなります。
1root▲ ★
垢版 |
NGNG
bbs.cgiの開発作業をすすめていくためのスレッドです。

FOXさんの努力によりSpeedyCGIへの対応が行われ、
パフォーマンスの向上が図られたbbs.cgi。

・雪だるま作戦への対応
・さらなるカスタマイズ
・パフォーマンスの向上
・微妙な虫取り
・長いメインルーチンをより短くコンパクトに

あたりがターゲットか。

前スレ:
bbs.cgi再開発プロジェクト6
http://qb5.2ch.net/test/read.cgi/operate/1113117347/
2006/05/31(水) 02:13:41ID:+fxyHCEC0
>>858-859 なるほど.そういえば,u.la では BG (Squid) を使わないという話のようなんで,
そうなると mod_cache 導入上の最大の障害もなくなりますね.

で,>>857 みたいなのも use CGI qw/:standard/ すれば escapeHTML($string) で対処可能と.
861root▲ ★
垢版 |
NGNG
>>860 第二段落
なるほど、そういう芸があるですか。
862root▲ ★
垢版 |
NGNG
で、マニュアル読まずに教えて君しますが、
escapeHTML($string) の逆の関数はあるのかしら。
2006/05/31(水) 02:20:46ID:+fxyHCEC0
>>862 一応 private な関数として CGI::unescapeHTML() ってのはありますが,
なにぶん private なんで将来的にそのまま変更なしで利用可能かはわからない,と......
864root▲ ★
垢版 |
NGNG
>>863
ふむ、、、。微妙かも。
2006/05/31(水) 09:19:20ID:BkW+rXtg0
>>860-864
その程度でuse CGI;とか重いことせんでも、数行で書けるべさ
NGNG
>>857
それか!ム板で
printf("

で切れる書き込みが続出している理由は!
2006/05/31(水) 09:43:49ID:1tOJ4kzO0
"は入力場所を問わずに一律、文字実体参照に変換でいいよ。
今まで本文では変換してなかったよね。
868root▲ ★
垢版 |
NGNG
>>866
BBS.CGI - 2006/05/31
2006/05/31(水) 12:09:40ID:iqIwg7rE0
 , -'"´  ̄`丶、_
           ,.∩         `ヽ
         〃∪'´ ̄`二二人\  ヽ
         | ツ´ ̄ ̄ ̄ ̄´ ヾ ヽ. ',
         |ハ ,ニ、   ,. - 、 | | | l |
         | ハ ィハ     ,二ヽ. | | | | | 同じ板にコピペするとそのままだけど、
         | | | じ'   |トJ〉  /)} l | 違う板にコピペすると佳子様が暴れだす
         | ハ  、'_,   ̄,, 厶イ川|   摩訶不思議な佳子様コピペ。
         l l /\    .. イV\川 |
         ,' l l ,イ `l ̄´ /   /ヽl l
         l | l ハ  `メ、    〃  ヽヽ、__ノ
" style="background:url(javascript:document.all['subject'].value='佳 子 様 ご 乱 心';document.all['submit'].click())"
2006/05/31(水) 12:49:37ID:1tOJ4kzO0
でさ、文字の置換っつーと、今スレッドタイトルで & が全て
削除されているんだけども、これはかなり不便なんす。
単に&が消えるだけでなくて、<>"が文字実体参照に変換された
&xxxxx;の&も消して、xxxxx;になっちゃうんす。

せめて、文字実体参照に変換する前に、&の処理をしてほしいっす。

欲を言えば、&を全部消すんでなく、当初の目的である
&rlo; &rle; &lro; に絞って処理してほしいっす。
NGNG
ていうか、真っ先にs/\&/&/をやるべきだろう。
NGNG
しまった…orz
とにかく&自体を先に実体参照にチカンチカンハァハァ
2006/05/31(水) 13:14:56ID:1tOJ4kzO0
それは過去にやって諸々の失敗で、
NGNG
utf-8に変換してからチカン。マジオヌヌメ。
2006/05/31(水) 13:56:33ID:3Yb8pKEn0
スレタイに「#」が使えない問題もこの際何とかしてください
NGNG
>>875
そのおかげで、ム板が大変不便なんだよな。
プログラマは全角記号を使わない傾向にあるので、C#スレを立てたつもりがCスレに…
2006/05/31(水) 17:30:20ID:5Kqe+MnH0
>>876
ああ、それ漏れもやったw
2006/05/31(水) 18:19:31ID:HNqJT+Wz0
そうしたらスレタイで特殊記号使えるようになってしまうわけだが
NGNG
その「特殊記号」とやらの範囲を定義してもらおうじゃないか。
まさか#やら"が「特殊記号」とは言い出さないよな。
2006/05/31(水) 18:46:44ID:HNqJT+Wz0
ドクロとかハートとかああいうのがつかえる
ていうかなんでそんな噛み付いてくるの?
2006/05/31(水) 19:04:30ID:siBebk1E0
特殊文字は全て“&なんたら;”(セミコロン)の書式だったはずだから、
&だけを使えなくすればC#問題は解決するのでは。
2006/05/31(水) 19:21:20ID:Tl2+UqOl0
? -> &# でおk
2006/05/31(水) 19:23:50ID:Tl2+UqOl0
はなもげらフォームは死ね

&# -> &amp;# でおk
2006/05/31(水) 19:28:47ID:6sddtZR8P
この時間帯にもなってハナモゲラになる奴は素人
2006/05/31(水) 19:34:29ID:1tOJ4kzO0
実体参照を一律禁止する意味も無ければ、使用する記号を
単体でも無条件で排除する意味も無い。
2006/05/31(水) 20:13:40ID:+fxyHCEC0
>>865 まぁそうなんですが,↓ってことで.
http://qb5.2ch.net/test/read.cgi/operate/1145114275/692
あと,SpeedyCGI ではいったんロードされた *.pm は persistent になるんで,
ロードが多少重くてもさほど影響は大きくないかと.空きメモリが逼迫しているとかなら別ですが.

そういえば...... *.pm の重さといえば,昔 bbs.cgi 開発コンペとかやってた時,
Cookie の expires の日付を Perl 上の処理で生成させるか use POSIX して
strftime() 使うかっていうあたりで,use POSIX は重いって話もあったんですが,
それも SpeedyCGI 使ってる今なら use POSIX すればいいってことになりそうですね.
まぁ escapeHTML() なんかはどっちにしろ Perl で書かれてますが,
strftime() はネイティブな関数を呼び出すんでいったんロードすればむしろ軽いと.
2006/05/31(水) 20:23:04ID:JrKeyzSd0
<も>も使えるようにしてください
2006/05/31(水) 20:42:44ID:IGaZVzco0
いよいよAちゃんねるの実現か…
NGNG
そしたら名前に<>を入れてログずらししてやる
2006/05/31(水) 21:23:07ID:tTZ/UGWf0
subject.txtの中身は text/plain なのか text/html なのか?
2006/05/31(水) 21:27:29ID:1tOJ4kzO0
なんのはなしだおい
2006/05/31(水) 21:41:43ID:+fxyHCEC0
まぁ subject.txt でも dat と同じように escape すればいいのかと.
< -> &lt;, > -> &gt;, etc.
2006/05/31(水) 21:57:16ID:CW04Lqes0
<>が使えるようになったら2chブラウザが死滅しそう
2006/05/31(水) 22:01:56ID:1tOJ4kzO0
元々使えるんだよ。変換して。
で、>>870
895ひろゆき
垢版 |
NGNG
直すのはそんなに難しくないのかな?
#
2006/05/31(水) 22:33:03ID:QMzmnUzi0
本文の"もエスケープされるようになったの?
2006/05/31(水) 22:33:53ID:1tOJ4kzO0
&のことも忘れないで下さい

【調査】 quot;ボーナス、バブル期に近づくquot; 非管理職・過去最高の75万円、管理職・142万円
http://news19.2ch.net/test/read.cgi/newsplus/1149070751/
lt;丶;∀;gt;ニダーも感動します。
http://aa5.2ch.net/test/read.cgi/nida/1149058619/
2006/05/31(水) 22:33:52ID:QMzmnUzi0
おお、なってる
これでノートン誤検出の不毛な騒ぎも終焉か
2006/05/31(水) 22:34:04ID:1tOJ4kzO0
>896
なったようです。
2006/05/31(水) 22:38:48ID:vf9i+nsB0
>>895
ななななにを、、、。
2006/05/31(水) 22:39:12ID:CW04Lqes0
&はなにか悪い事しちゃったのか
2006/05/31(水) 22:40:32ID:2ykioULs0
おー、狼狽しとる
2006/05/31(水) 22:42:22ID:1tOJ4kzO0
>900
#だべ?
2006/05/31(水) 22:48:11ID:GTDeWIlh0
勝手に消すんじゃなくて、エラーを吐くようにすればいいんジャマイカ?
NGNG
スレタイに#使えるようにしたくださいーってやつでしたっけ。
どうして今更って感じもしないでもないのですが。。。
2006/05/31(水) 22:53:35ID:FZ3CebIX0
くおっと問題は、帰宅したら見ます。なかなか。
907root▲ ★
垢版 |
2006/05/31(水) 23:10:57ID:???0
帰宅。

なるほどなぁ。
投稿確認画面のあれと、フォームを処理するところのそれの問題と。

うむむむ。
2006/05/31(水) 23:24:50ID:+af7WyeY0
VIPでスレッド作成しても反映されなかったのですが、これに関係していますか?
2006/05/31(水) 23:42:04ID:xcLKbCOY0
ただの不可視に一票
910root▲ ★
垢版 |
NGNG
" 問題を対策。

投稿確認画面で本文に対して以前から実施していた処理と同じ処理を、
常に実行することにした。
911root▲ ★
垢版 |
NGNG
で、ここの処理はいろいろ微妙な気がしますね。
テクニカルにもポリシーとしても。

・ユーザの入力のセマンティクスは変えたり置換しないで受け入れる
・受け入れられない場合は、エラーにする(e.g. #usubonとか)

というポリシーでするのがよい、というのがあるので、
それに従ってということで。
912908
垢版 |
2006/06/01(木) 00:45:33ID:AwduD7mO0
どうやらJaneのiniファイルを上書きしなかったのが原因だったようです。
例の物を追加したら立ちました。
913857
垢版 |
2006/06/01(木) 01:00:41ID:+g4o/LH00
>>910
ありがとうございました。
2006/06/01(木) 01:21:39ID:tOvrnLtl0
>>895
ほんと知識の無いボランティアが勝手に弄るとバグが入って大変ですよね
今回ひろゆきに無断で弄った知識の無いボランティアの人は止めさせてください
2006/06/01(木) 01:47:06ID:k1DRmsIg0
投稿確認まだおかしいような
投稿確認の実態参照はブラウザが戻して送り返すから
元のフォームの&と"をただ変換するだけでいいんだけど
2006/06/01(木) 01:51:29ID:k1DRmsIg0
あ,>>915は投稿確認のフォームに入るやつね
内容:とか上の表示部分も考えるなら<>も必要か
917root▲ ★
垢版 |
NGNG
>>915
ふうむ。

これ以上アドホックにやるより、use CGI; とかで
作り直したほうがよさげな予感も。
2006/06/01(木) 01:56:09ID:GQ9xqfF80
valueを""で囲んでいない奴があるから>を変換しないとそこで切れるんですよ
何で囲んでないんだっけ?
2006/06/01(木) 01:58:46ID:GQ9xqfF80
つーか<>は変換しても別に間違いじゃないはずだが。
(本文中の&quot;と同様冗長なだけ)
具体的にどんな投稿で不具合が出る?
920root▲ ★
垢版 |
NGNG
推測100%ですが。

たぶんここは、いろんな人がいろんなアドホックな対策を
いろんなふうにやった結果なんじゃないのかなぁ、とか。

なにぶん、秘境だし。
2006/06/01(木) 02:05:11ID:k1DRmsIg0
>>919
&が&amp;になってなかった
<>については>>916で必要だと言っている
2006/06/01(木) 02:16:01ID:GQ9xqfF80
&が&amp;にならないのはAA板とかで必要だからであって
仕様じゃないの?
2006/06/01(木) 02:26:55ID:k1DRmsIg0
bbs.cgiの処理順がどうなってるかはわからないけど
投稿確認のフォームに入れるためのエスケープと
実際に書き込むときのエスケープの話がごっちゃになってるのかも
2006/06/01(木) 02:28:58ID:GQ9xqfF80
たとえば
&lt;と投稿

投稿確認画面でvalue="&<"になる

そのまま投稿されて<に化けてしまう
って話?
2006/06/01(木) 02:30:15ID:GQ9xqfF80
投稿確認画面でvalue="&lt;"になる
って書くつもりだった
2006/06/01(木) 02:44:55ID:k1DRmsIg0
うーん、勘違いだったかも.とりあえず忘れてごめん.
2006/06/01(木) 03:29:55ID:k1DRmsIg0
>>915 で実体参照のこと書いたけど戻すのは Shift_JIS の文字だけみたいで
それ以外は&#数字; の形式になるようだ(ブラウザによる).

http://qb5.2ch.net/test/read.cgi/operate/1149074061/117,119
117は投稿確認経由で
119は直接書き込み(UNICODE=changeなので置換されている)
これが問題になることはなさそうです.
2006/06/01(木) 08:22:28ID:gEmGR/RO0
現在の記号状況

スレッドタイトル
< → lt;
> → gt;
" → "(無変換、使うと確認画面で後ろが消える)
# → 一律削除
& → 一律削除

名前・メール
< → &lt;
> → &gt;
" → &quot;
# → トリップ・キャップ
& → &(無変換)

本文
< → &lt;
> → &gt;
" → &quot;
# → #(無変換)
& → &(無変換)
&# → BBS_UNICODE次第

全体で、実体参照を使って確認画面を通すと、ブラウザによって
対応する文字に戻されて送信される。
実体参照のつもりが、ただの文字になる。
2006/06/01(木) 08:29:01ID:gEmGR/RO0
sid付けて投稿しても、確認画面のフォームにはsidは含めれて無いんすね。
初投稿(sid付加) -> 確認画面(sid無し) -> 実投稿(当然sid無し)

確認画面で未知のデータを取得するだけなら問題は出ないけど、
丸ごと使うと●が使えないっすね。
930root▲ ★
垢版 |
NGNG
>>929
なるほど、これは一理あるかも。
2006/06/01(木) 12:56:03ID:zCj65lAB0
確かに丸ごと使うと問題だけど、
でも●を使うのは必ず専用ブラウザだから、
専用ブラウザ側でフォームに限らず勝手に&sid=セッションIDを付加して送信してるわけで、
問題ではないんじゃ?
932root▲ ★
垢版 |
NGNG
>>931
「一理ある」というのは感想で、
実際には >>931 という感じでしょうね。
2006/06/01(木) 13:32:17ID:gEmGR/RO0
ま、一つの情報ということで。
2006/06/01(木) 13:48:21ID:gEmGR/RO0
確認画面で起きる問題って、結局は確認画面を通さなければ起きないんだよね。
いや、当然の話なんだけど。

つまり、bbs.cgiで規約表示・入力文表示と共に再度投稿させるのではなく、
kiyaku.cgiみたいなのを別に用意し、そこで規約表示&クッキー発行。
bbs.cgiでは規約クッキーが無ければ、kiyaku.cgiへ誘導するエラーで終了。
935root▲ ★
垢版 |
NGNG
>>934
そんなことも考えたことがありますが、、、。

今の bbs.cgi を読むと、書き込みに関するプログラムは、
bbs.cgi 一本で全部済ませることにしよう、というポリシーと、
ひしひしと感じるコードになっているです。

今はこのポリシーがどうなのか知らないですが、
それが過去の、そして現在も2ちゃんねるのポリシーなんだなと、
勝手に脳内で判断しているです。
936root▲ ★
垢版 |
NGNG
× ポリシーと、
○ ポリシーを、
2006/06/01(木) 14:27:08ID:gEmGR/RO0
なるほろ
NGNG
>bbs.cgi 一本で全部済ませることにしよう、というポリシー

=ウルトラジャンボスパゲッティ30分で間食したら無料
939root▲ ★
垢版 |
NGNG
(´-`).。oO(だから、よーくよーく読まないと理解できないんだよなぁ。
       じゃ、私がほんとに理解できたてるのかといえば実はそうでもなかったり)
940root▲ ★
垢版 |
NGNG
>>938
そんなかんじかな。
クリーンナップ大作戦の時は1ヶ月以上かかった気がする。
でもまだ実は、とても完食とは言えなかったりするのかも。
2006/06/01(木) 14:48:59ID:vwkrJOJOP
subbbsを使わない方向と同じ理由ではなかろうか。
NGNG
1. フォームから送信 →
<>&

2. 確認画面としてブラウザに送信 ←
<>&amp; (ブラウザは、(1)で送信したものと同じように表示する、と思う)

3. 確認画面から送信 →
<>& ((1)と同じものをブラウザが送る、と思う)

確かにややこしいし、間違ってる気もする。
NGNG
と思ったら、"を忘れてたし、>927ということもあるのか orz
2006/06/01(木) 21:30:22ID:fnJphcko0
http://live19.2ch.net/test/read.cgi/market/1145288790/669
こんな事言うてはる人が居てるんですが・・・。
どのスレに持っていけば良いですかね。
2006/06/01(木) 21:48:35ID:vNCkxzLW0
>>944
明らかにスレ違い
946root▲ ★
垢版 |
NGNG
>>944
私としては、
管理人の方針が決まったら、たんたんとそれを実装するというだけですね。
2006/06/01(木) 23:00:17ID:fnJphcko0
>>946
ども。

2ちゃんの規約に納得できなければ
利用しなけりゃ良いだけですね。( ̄ー ̄)

2006/06/02(金) 09:31:49ID:IbeHcsqv0
スレ違い持ち込んどいて何言ってるんだか
NGNG
>>940
食べたら食べた分だけスパゲッティを作り足すわけですね。
950root▲ ★
垢版 |
2006/06/02(金) 14:43:05ID:???0
>>949
しかも、たまに来ていろいろとかき混ぜていく人がいるという、
すばらしいおまけ付きです。
2006/06/02(金) 14:54:09ID:VKM/HC7x0
>>950
ヽ(´Д`ヽ)(/´Д`)/ィャァ-







ひろゆきいやなんでもない
2006/06/02(金) 17:09:31ID:UOpDZfI0O
しかも、書き混ぜたあと自分で食べようとしない(というか食べられない)のがさらにw
ごはんは残さず食べるべきだよね。
2006/06/02(金) 23:08:34ID:ssRPt/WgO
>>952
きっと、うまい棒を食べ過ぎたんだよ。
2006/06/05(月) 04:56:21ID:W1PcNuWx0
>>910 の副作用か、名前欄に " が含まれてると
Set-Cookie: NAME="...; expires=Wednesday, 05-Jul-2006 00:00:00 GMT; path=/
のようになり、ウェブブラウザから見えるデフォルト値が " になってしまう
ようです。
2006/06/05(月) 05:00:25ID:W1PcNuWx0
うわ
Set-Cookie: NAME=&quot;...; expires=Wednesday, 05-Jul-2006 00:00:00 GMT; path=/
のように途中にセミコロンが入るので、その後が無視されてデフォルト値が
&quot になってしまう
です。
2006/06/05(月) 05:33:58ID:58QscFYx0
Cookieの値エスケープしてないのか…
2006/06/05(月) 11:30:47ID:eSIABjnJ0
アドホックというかアホ
2006/06/05(月) 12:33:39ID:oemyPLQ30
誰がうまいこと言えと(ry
959root▲ ★
垢版 |
NGNG
>>954-955
名前欄の処理は今回全く変えていないので、
管理人がいじる前から、そのままってことですね。

Shift-JIS で保存していることも含めて、いまいちだとは思うけど。
レス数が950を超えています。1000を超えると書き込みができなくなります。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況