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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions