ホームに戻る > スレッド一覧 > 記事閲覧
[59] タイトルに入れた\nが<br>に書き換えられてしまいました
日時: 2012/03/01 21:20
名前: ひもと◆JYsqpXk.I. ID:gs8Dvtus

コピーです

結構大きいプログラムのミスを発見した

KENTにて配布されてるWebpatio
http://www.kent-web.com/

結構使ってるサイトは多いと思うんだけども


改行対策に関して結構重大なミスを発見しました

何故かタイトルに入れた\nが<br>に書き換えられてしまいました


文中の\nが<br>に書き換えされるのはまだ分かる物の何故タイトルのが<br>に書き換えされてるかは意味不明です

単なるミスだとは思いますが\nは文字数にカウントされないので無限に<br>を挿入でき危険なのでやっぱり対策した方がいいと思う


対策方法についてはPerl使いでは無いのでよく分からないので後日書くかもとしておく


ってまぁ、改行入れてPOSTする荒らしなんてそうそう居ないとは思うんだけどね
メンテ

Page: 1 | 2 | 全部表示 スレッド一覧 新規スレッド作成

追加忘れていました ( No.3 )
日時: 2012/03/02 22:09
名前: ひもと◆JYsqpXk.I. ID:1FZZvMV.

>>1-2
申し訳ありません

リンク追加するのを忘れていました
メンテ
本文以外は改行コードは除去してもいいかもしれませんね ( No.4 )
日時: 2012/03/06 16:29
名前: きりしま◆.CzKQna1OU ID:bLKues.2 メールを送信する

タイトル欄は
inputフィールドで、
最大文字数も指定してあるので、
ちゃんとしたブラウザなら、変なことは起きないはずですし、
もしそうなっても、タイトルが改行されて表示されるだけです。

また、受け取った改行は<br>に置換されますので、
スレッドのデータが破損したりすることはなく、
動作上はさほど問題はないと思われます。

ですが、
一部のブラウザは、
inputフィールドであるにもかかわらず、
改行コードを入力して送信できてしまうようですので、
レイアウトが崩れるのを防ぐためには、
本文以外の受け取ったデータは、
改行コードを<br>に置換するのではなく、
除去するのがいいかと思います。

init.cgiの
L.743付近と、L.790付近の2ヵ所に、

# プレビュー時は改行を置換しない

というコメント行がありますので、それぞれその前に、

if ($key ne "comment") {
$val =~ s/\r//g;
$val =~ s/\n//g;
}

と入れたらどうでしようか。

現在、テスト掲示板を上記仕様にして、
あえてタイトルを<textarea>にしてあります。
メンテ
ありがとうございます ( No.5 )
日時: 2012/03/06 16:42
名前: ひもと◆JYsqpXk.I. ID:dRqklfYw

>>4
試して見ます

お答えありがとうございます
メンテ
荒らしさんはちゃんとしたブラウザなんて使用しませんので ( No.6 )
日時: 2012/03/06 20:32
名前: ID:KF1l6kAY

>ちゃんとしたブラウザなら、変なことは起きないはずです。
荒らしさんはちゃんとしたブラウザなんて使用しませんので^^

一部のブラウザの話では無くセキュリティーのお話ですよ
メンテ
題名入れるところの背景色と文字色が近すぎる ( No.7 )
日時: 2012/08/08 15:21
名前: tk ID:T6OSzjW.
参照: http://d.hatena.ne.jp/perlcodesample/20091120/1246679588

これをきりしま式のとこに書いてもしょうがないんじゃないか?
本家に言うべきじゃないの?
>蛭さん
キリシマさん反論してないけどフリーソフトで責任負わないんだからいちいち完璧にセキュリティ対策施すわけないでしょ。だいたい、本家の配信スクリプト自体知恵袋回答者からは、評価が低いのに。
patioにstrictプラグマが使われたのまだ最近だろ。シロウト目にもコードが古い気がするもん。
わかってたらダウンロードして使わないだろ
セキュリティを問題にしたいなら>>1
で言われてる通り、各自で習熟度を上げるほうが手っ取り早くて意味がある

って素ウトの意見なんだがね
メンテ

Page: 1 | 2 | 全部表示 スレッド一覧 新規スレッド作成

題名 タイトルは次の画面で設定してください
名前  「名前#任意の文字列」でトリップ生成
E-Mail 入力すると メールを送信する からメールを受け取れます(アドレス非表示)
URL
パスワード (記事メンテ時に使用)
投稿キー (投稿時 投稿キー を入力してください)
コメント

   クッキー保存