JDimproved / JDim

2ch browser for linux
https://jdimproved.github.io/JDim/
GNU General Public License v2.0
46 stars 11 forks source link

まちBBSのスレにある通常リンクをクリックすると http://noopener/ が開かれる #1236

Closed ma8ma closed 1 year ago

ma8ma commented 1 year ago

まちBBSのスレにある通常リンクをクリックすると http://noopener/ が開かれる

バグの説明

まちBBSのスレにある通常リンク(青)をクリックするとwebブラウザで開きますがスレに表示されているURLではなく http://noopener/ が開かれたと報告がありました。

https://next2ch.net/test/read.cgi/linux/1654053581/127

再現の方法

  1. メニューバーの設定(C)>一般(G)にある「まちBBSでofflaw.cgiを使用する(O)」をoffにする
  2. まちBBSの板を登録する (外部板など)
  3. まちBBSの板を開く
  4. スレ一覧からスレを開く
  5. スレの中から通常リンク(URLが青色)を探す
  6. リンクをクリックしてwebブラウザで開く
  7. リンクになっているURLではなく http://noopener/ が開かれる

やりたかったこと・期待する結果

通常リンクをクリックしたら表示されているURLを開く

スクリーンショット

なし

動作環境

[バージョン] JDim 0.10.1-20230826(git:19029b9407)
[ディストリ ] Ubuntu 23.04 (x86_64)
[パッケージ] バイナリ/ソース( <配布元> )
[ DE/WM ] KDE
[ gtkmm  ] 3.24.7
[ glibmm  ] 2.66.6
[ TLS lib ] GnuTLS 3.7.8
[オプション ] '--with-alsa''--with-pangolayout'
[ そ の 他 ] 

追加の情報

メニューバーの設定(C)>一般(G)にある「まちBBSでofflaw.cgiを使用する(O)」をonにして読み込んだスレでは通常リンクのクリックが期待通り動作しました。

まちBBSのスレッドにwebブラウザでアクセスしてHTMLソースを見てみるとリンクの<a>要素にhref以外の属性が追加されています。

<a>要素の例

<a rel="noopener" href="http://machi.to/bbs/link.cgi?URL=https://hoge.test/fuga" target="_blank">https://hoge.test/fuga</a>

JDimが実装しているdatデータからHTML要素を解析する処理では<a>要素の属性がhrefだと決め打ちしています。 このためrel属性をhref属性の値として解析したのが原因のようです。

https://github.com/JDimproved/JDim/blob/19029b9407ba32b32f15a0a3bc7a0648a24722bd/src/dbtree/nodetreebase.cpp#L2156-L2164