専用ブラウザから"ブラウザで開く"類を設定

専用ブラウザから"ブラウザで開く"類のアクセスに404を返したままでした。

http://example.com/test/read.cgi/boardName/threadKey/optionhttp://example.com/boardName/nonyu.php/threadKey/option にリダイレクトするように設定しました。

ドメイン直下の.htaccessでRewriteEngine Onにするのは嫌だったので、testディレクトリを作りその中の.htaccessで


RewriteEngine On
RewriteBase /
RewriteRule ^read\.cgi/([^/]*)/(.*) $1/nonyu.php/$2 [R,L]

としました。

広告

nonyu b0.1.1

[仕様] 設定ファイルを分離しました。

[修正] 名前欄は<b>だけ本文は<br>だけ残してタグ除去、スレッドタイトルとメール欄・ID欄はタグ全除去しました。

HTMLエンティティをデコードしてエンコードしようと思ったのですが"&"の扱いをどうするか迷ったのでstrip_tagsでお茶を濁しました。

strip_tagsで残したタグの中にjavascript等で変な属性が入っているとそれが残ってしまい、html表示時にはそれが実行されてしまうのですが、取り急ぎの対策なのでこれで。要修正。

いちいち読む時にdatが不正じゃないか確認するよりもdatを取り込むときにvalidかどうか確認すればいいのか

というかdatのvalidator作ったほうがいいのね。

でもこれ互換板のログなんての考えていくと頭痛くなりそうだなあ。ていうか2chのログだって過去から仕様変わってるしそれ追うのだけでもめんどくさそう。

表示の時にvalidか確かめるよりvalidator通すほうが一見楽だけど、整合性調べてdat書き換えるよりはエスケープするだけなら表示の時にやるほうが楽なのかな?グルグル。

nonyu b0.1.0

[完成] datを読んで表示する簡易read.cgi出来ました。

スレ削除、レス削除機能付きですがsubject.txtとindex.htmlの作成がiwnidに任せっきりなのでどう公開していいのかよくわかんなかったりする。

[要対策] 与えられたdatを無条件で読み込んでしまっているので、妙なdatを拾ってきたりdat取得先が変なdat作ってたりするとそれを実行してしまう。

dat中に出てくるタグって<br>と<b>と<a>だけかな。名前欄に出てくるのが<b>(ただしdatには</b><b>として出てくる)、日付のところに<a>、本文に<br>と<a>のはず。

これらを残してstrip_tags
→この三つを他の文字に置き換えてhtmlspecialchars_decode
→htmlspecialchars
→置き換えたものを戻す

これでいいのかな? なんかもうちょっといいやり方はないものか。

車輪の再発明read.cgi編

独自の削除フラグを持ったread.cgiのphp版を作ろう。

もうちょっと正確に言うと独自の表示しないフラグを持ったread.cgiのphp版。表示部分はdatに残ってるレスアンカーのリンクやbe,株のリンクを取っ払った簡易表示。理想としたらにくちゃんねるみたいな多機能だったり自分で表示形式を選択して記憶したりだったりなの作れたらいいんだろうけど、というかスキルがあれば作りたいけどcookieとjavascriptを1から勉強しなきゃいけないので無理。