Skip to content

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

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の場では自動エスケープをデフォルトにしたほうがいいように感じます。)

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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