crocodile2u/safer-blitz

本包最新版本(1.1.1)没有提供许可证信息。

1.1.1 2018-02-01 14:59 UTC

This package is auto-updated.

Last update: 2024-09-14 22:54:20 UTC


README

Blitz 模板引擎的一个小扩展,增加了模板继承和自动转义功能。

模板继承

article.tpl:

<article>text</article>

layout.tpl:

<header/>
{{ raw(content) }}
<footer/>

PHP 代码:

$view = new View("article.tpl");
$view->extend("layout.tpl");
echo $view->parse();

输出结果:

<header/>
<article>text</article>
<footer/>

自动转义

初始化视图

$view = new \SaferBlitz\View;

在模板中

{{ $some_variable }}

在控制器中

$view->set(["some_variable" => "some nasty XSS attempt: \"><script>alert(\"XSS\");</script>"]);
$view->display();

结果

some nasty XSS attempt: &quot;&gt;&lt;script&gt;alert(&quot;XSS&quot;);&lt;/script&gt;

要输出未转义的变量,请使用 raw($var) 模板 API

{{ raw($trusted_variable) }}

如果有人对此项目感兴趣,我可能会添加适当的转义方法来转义属性、CSS、JS。不过,目前这超出了我的个人使用范围。