クロスサイトスクリプティングの脆弱性への対応について
いつもSKELETON CARTをご愛用いただきありがとうございます。
先日、SKELETON CART version2系においてクロスサイトスクリプティングの脆弱性が発見されました。
脆弱性の内容
オプション情報項目($item.opt*, $user_opt*, $delivery_opt*)にURLを入力し、それを表示しようとした場合、JavaScriptなどの実行が可能となる。
現在、本製品をご利用の皆さまにおかれましては、大変お手数ではございますが以下の対応をお願いいたします。
対応手順【1】Smartyプラグインの設置
以下の modifier.url_sanitize.php をダウンロードしていただき、SKELETON CARTをインストールしたディレクトリ直下にある smarty_plugins ディレクトリにコピーしてください。
設置例
- http://example.com/
- item.html(商品ページ)
- shop(SKELETON CART設置ディレクトリ)
- ├ smarty_plugins
- ├ modifier.url_sanitize.php
- ⋮
- ├ smarty_plugins
対応手順【2】テンプレートの編集①
_cart.html、_regi_conf.htmlなどのテンプレート内で、$item.opt*
$user_opt*
$delivery_opt*
を利用し、href属性やsrc属性でURLを表示・使用する場合、
その属性の値にurl_sanitizeフィルタを適用してください。
適用前
{$item.opt1}
適用後
{$item.opt1|url_sanitize}
url_sanitizeフィルタ適用の例
<a href="{if $item.opt30 != NULL }{$base_url}/{$item.opt30|url_sanitize}{/if}">
<figure>
<img src="{if $item.opt1 != NULL }{$base_url}/{$item.opt1|url_sanitize}{/if}" alt="">
</figure>
</a>
対応手順【3】テンプレートの編集②
_regi_conf.htmlテンプレート内の変数$memo
を以下のように変更してください。
変更前
<th>連絡事項</th>
<td>{$memo|nl2br nofilter}</td>
変更後
<th>連絡事項</th>
<td>{{$memo}|nl2br nofilter}</td>
※$memo部分を{}
で囲みます。
以上となります。
※現在ダウンロードしていただける試用版およびご購入後の製品版については上記の対応を済ませておりますのでご安心ください。
本件に関するお問い合わせ
本件に関するお問い合わせは、お問合せフォームよりご連絡ください。