Skip to content

smartyはデフォルトでhtmlエスケープ出力したほうがいい? #80

@kujiy

Description

@kujiy

xoopsのsmartyは生の値?を出力するのがデフォルトなので、htmlタグをそのまま出力する場合は自前でescapeする必要があります。

例1:

<{$var | escape:'html'}>

これはセキュリティに問題を抱えたコードが生まれやすい仕様のため、

<?php
$xoopsTpl->default_modifiers = array('escape:"html"');

などとしてデフォルトをエスケープにして、あえてhtmlタグ等をそのまま出したい場合だけ

<{$var | smarty:nodefaults}>  // または no_enc など独自にわかりやすいものを作る

とする仕様が、(一長一短ではありますが)基盤となるCMSの仕組みとしてはいいように思います。

・・ということが社内で話題になったのですが、一般的には/xoopsの方針としてはどうなんでしょうか。(自分一人なら自動エスケープは使わないですが、セキュリティに弱いコーダーも入り交じるOSSの場では自動エスケープをデフォルトにしたほうがいいように感じます。)

可能であればどなたかのご意見を伺いたく思います。いかがでしょうか。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions