|
カテゴリ:プログラミング系メモ
HTMLのタグを解析したい時ってありますよね?
CGIなんかでは、よくあると思うのです。 たとえば、タグが使える掲示板が作りたいとき、特定のタグを禁止したり特定の属性値を変更したりしないと、クロスサイトスクリプティング攻撃(XSS攻撃)を受けたり、レイアウトが乱れたりしちゃいます。 最低限セキュリティーだけは確保しないと、ただ見に来ただけの人が攻撃を受けちゃいますから、自分も加害者の片棒担ぐことになっちゃう・・・ そんな時どうしています? 最初に思いつくのは、XMLパーサを流用できないかな?とか、正規表現で置き換えるとかですよね。 でも、XMLパーサは、きれいなHTMLじゃないとうまく使えない。そもそも、送られてくるHTMLが信用できないから綺麗にしたいんです。こういうときには使えない。 じゃぁ、正規表現は? HTMLは階層構造を持っているので、解析していくにはステートを持って管理する必要があるんです。正規表現でコレをやるのはかなり難しい。何より、自分で書いて1時間もたてば何やっているのかわからないくらい複雑になっちゃいます。 たぶん、正規表現でやっている人って意外と多い。もしかすると楽天広場だってそうかも? でも、あまりお奨めじゃないです。 そんなときに使えるのがTidyです。 具体的には、Tidyを使って綺麗なXHTMLに変換後、XMLパーサで解析していけばいいんです。 こういう方法なら、リンクされているページを抜き出すとか、下位項目を抜き出して索引を作るとか、大抵のやりたいようなこと、そして、やりたくても出来なかったようなことが出来ます。 なにより、まだ誰もやっていないようなこと、みんなやりたかったけど出来なかったことが、今なら簡単に出来ちゃうんです。 こういうのをうまく使うと、ちょっと目新しいコンテンツを作れますよね。すぐ真似されるのだろうけど。 私のページでもTidyを使っています。 こんな感じ・・・ http://edit2000.net/edit.php?Parent=0&Mode=Create PHP5では、標準的に使えるようになっています。 もちろん、C/C++、コマンドラインなどでも使えますよ^^ たしか、Perlのモジュールもあったはず・・・ P.S. 関連情報お待ちしています。 質問はいつでも歓迎です。 教えてくれる人やコメントはもっと歓迎。お友達が欲しいです^^ お気に入りの記事を「いいね!」で応援しよう
最終更新日
2004年11月24日 07時09分38秒
コメント(0) | コメントを書く
[プログラミング系メモ] カテゴリの最新記事
|