http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2012-07-26T11:17:51Z
OpenPNE Issue Tracking System
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15251
2012-07-26T11:17:51Z
Kiwa Sakai
kiwa@openpne.jp
<ul><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/15251/diff?detail_id=19871">diff</a>)</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15252
2012-07-26T11:21:22Z
Kiwa Sakai
kiwa@openpne.jp
<ul><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/15252/diff?detail_id=19872">diff</a>)</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15260
2012-07-27T09:18:08Z
Kiwa Sakai
kiwa@openpne.jp
<ul><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/15260/diff?detail_id=19883">diff</a>)</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15467
2012-08-24T04:51:17Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>3.8 で発生するか</strong> を <i>Yes (はい)</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15470
2012-08-24T04:56:41Z
Yuma Sakata
sakata@tejimaya.com
<ul><li><strong>対象バージョン</strong> を <i>OpenPNE 3.8.2</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15492
2012-08-24T05:48:31Z
Yuma Sakata
sakata@tejimaya.com
<ul><li><strong>対象バージョン</strong> を <i>OpenPNE 3.8.2</i> から <i>OpenPNE 3.9.0-old</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15537
2012-08-30T07:47:17Z
Yuya Watanabe
watanabe@openpne.jp
<ul><li><strong>担当者</strong> を <i>Yuya Watanabe</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15601
2012-09-06T08:46:13Z
Yuya Watanabe
watanabe@openpne.jp
<ul></ul><a name="メモ"></a>
<h3 >メモ<a href="#メモ" class="wiki-anchor">¶</a></h3>
<p>対策としては 2通り考えられるが,先に結論を述べておくと 後者を選択する</p>
<ol>
<li>4byte 文字をサポートできる仕様にする</li>
<li>4byte 文字を受け付けない仕様にする</li>
</ol>
<p>前者の場合,データベース自体(この場合 MySQL)が 4byte 文字に対応していないということになり,この MySQL のバージョンアップなりの対応で対応できるが,すでに動いている SNS などを考慮すると MySQL のバージョンを上げることが難しい場合もあるため今回はこの方法を取らない.次期 OpenPNE バージョンなどで対応できるように検討することが適切であるとおもわれる.</p>
<p>基本的に本チケット(本バージョン)では後者の場合を取りうるが,この場合での検討事項は どのタイミングで 4byte 文字を切り落とすかとなる.<br />この問題はおそらく MySQL のバージョンや使用する文字コードなどが影響しているため Doctrine 以下で行いたいところが,データ格納時などに切り落とす処理を行うと影響範囲が大きく,Symfony で提供されているバリデーションがうまく働かなくなる可能性なども十分にありえるためあまり得策ではないといえる.</p>
<p>OpenPNE では似たような問題として ヌルバイト文字にも対応していて,これはリクエスト時にヌルバイトを切り落とすかどうかを指定して,切り落とした文字列を用いている.本チケットの問題も同様の対処により解決できるのではとかんがえられる.</p>
<p>つまりリクエストから文字列を取得してくる際に 4byte 文字を削除するような対策を取る.<br />この対策を施した OpenPNE では 4byte 文字を扱えないという仕様になり, 4byte 文字を削除した文字列を入力値として扱う.<br />こうすることで,空文字列が許容されないフォームに対しても 4byte 文字のみで構成された場合に空文字列として扱わせることで Symfony の Validator をそのまま用いることができる.</p>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15606
2012-09-07T12:58:59Z
Mutsumi Imamura
imamura@openpne.jp
<ul><li><strong>説明</strong> を更新 (<a title="差分を表示" href="/journals/15606/diff?detail_id=20350">diff</a>)</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15607
2012-09-10T05:22:29Z
Yuya Watanabe
watanabe@openpne.jp
<ul></ul><p>4byte 文字がすでに存在する場合があるかどうかを調査する必要がある.</p>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15652
2012-09-12T04:37:22Z
Yuya Watanabe
watanabe@openpne.jp
<ul></ul><p>すでに投稿された 4byte 文字に関係するものはDBに入っていないため考慮する必要はないが,アクティビティ通知のテンプレート部分が不正な場合のアクティビティのを削除するなどの対処を行う必要がある可能性がある.</p>
<pre>
+----+-----------+-------------------------+----------+-------------------+-------------+-------+-----------+--------+------------+---------------+------------+----------+-------------------------+---------------------+---------------------+
| id | member_id | in_reply_to_activity_id | body | uri | public_flag | is_pc | is_mobile | source | source_uri | foreign_table | foreign_id | template | template_param | created_at | updated_at |
+----+-----------+-------------------------+----------+-------------------+-------------+-------+-----------+--------+------------+---------------+------------+----------+-------------------------+---------------------+---------------------+
| 3 | 1 | NULL | [Diary] | @diary_show?id=45 | 1 | 1 | 1 | Diary | NULL | NULL | NULL | diary | a:1:{s:3:"%1%";s:1514:" | 2012-09-12 13:24:11 | 2012-09-12 13:24:11 |
+----+-----------+-------------------------+----------+-------------------+-------------+-------+-----------+--------+------------+---------------+------------+----------+-------------------------+---------------------+---------------------+
</pre>
<p>正しそうなデータは以下のとおり.</p>
<pre>
+----+-----------+-------------------------+----------------------+-------------------+-------------+-------+-----------+--------+------------+---------------+------------+----------+--------------------------------------+---------------------+---------------------+
| id | member_id | in_reply_to_activity_id | body | uri | public_flag | is_pc | is_mobile | source | source_uri | foreign_table | foreign_id | template | template_param | created_at | updated_at |
+----+-----------+-------------------------+----------------------+-------------------+-------------+-------+-----------+--------+------------+---------------+------------+----------+--------------------------------------+---------------------+---------------------+
| 4 | 1 | NULL | [Diary] タイトル | @diary_show?id=46 | 1 | 1 | 1 | Diary | NULL | NULL | NULL | diary | a:1:{s:3:"%1%";s:12:"タイトル";} | 2012-09-12 13:28:29 | 2012-09-12 13:28:29 |
+----+-----------+-------------------------+----------------------+-------------------+-------------+-------+-----------+--------+------------+---------------+------------+----------+--------------------------------------+---------------------+---------------------+
</pre>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=15875
2012-11-08T09:08:57Z
Yuya Watanabe
watanabe@openpne.jp
<ul></ul><ul>
<li>Web サーバの外側から入ってくる任意の文字列で対応する必要がある</li>
<li>OpenPNE の PHP では UTF-8 を用いており,4byte UTF8 についての考慮はなされていない</li>
<li>携帯電話のメールは Shift-JIS であり,4byte UTF8 について(おそらく)考慮する必要はない</li>
</ul>
<p>外からの入力が必ず通る Request あたりで OpenPNE で変更出来る部分として opWebRequest のパラメータ取得を修正しようとした.<br /> pc_frontend アプリケーションの場合ではうまくいくが api アプリケーションではうまくいかない.リクエストのオブジェクトとして opWebRequest を用いていないためである.<br />sfWebRequest であるならば request.filter_parameters のようなイベントを用いることができるが,これは初期化の時点で発行されるためにこのイベント発行時点での Request の中身を書き換えてしまう必要がある.</p>
<p>正しそうな修正としては api アプリケーションでも opWebRequest を用いることが考えられるが,本チケットの修正を対象とする修正としては少々大きいため,他の動作に影響がないか調査する必要がある.</p>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=16073
2012-12-07T11:32:20Z
Mutsumi Imamura
imamura@openpne.jp
<ul><li><strong>担当者</strong> を <i>Yuya Watanabe</i> から <i>Kousuke Ebihara</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=16121
2012-12-11T12:00:33Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>New(新規)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>50</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=16127
2012-12-11T12:33:33Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul></ul><p>opDoctrineRecord のセッター経由で値を設定する際、カラムが非バイナリ文字列をストアするものである場合で、 DBMS として MySQL を使用している場合は、文字列中に含まれる 4 バイト UTF-8 の文字を U+FFFD に置換するように変更しました。</p>
<p>ただし、 MySQL を使用している場合でも 4 バイト UTF-8 に対応可能な環境についてこの挙動を回避できるよう、 Doctrine の接続設定として ATTR_4BYTES_UTF8_READY (999) を受け入れられるようにしました。以下のように設定することで U+FFFD の置換がおこなわれなくなります。</p>
<pre>
all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: 'mysql:dbname=example;host=localhost'
username: root
encoding: utf8
attributes: { 164: true, 999: true } # 999: true を追加
</pre>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=16148
2012-12-13T06:34:38Z
Rimpei Ogawa
ogawa@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Pending Testing(テスト待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>70</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #3134: 4バイト文字を含んだ文字列を投稿すると、4バイト文字以降のデータが切れた状態で保存されてしまう
http://redmine.openpne.jp/issues/3134?journal_id=22191
2017-04-03T07:42:13Z
isao sano
sano@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Pending Testing(テスト待ち)</i> から <i>Won't fix(対応せず)</i> に変更</li><li><strong>進捗率</strong> を <i>70</i> から <i>0</i> に変更</li></ul><p>OpenPNE 3.8.4 にて対応済みであったため、対応せずとします。</p>