这是使用CakePHP 2.4添加META TAGS的正确方法吗?

时间:2012-12-29 09:11:19

标签: php cakephp cakephp-2.0

我有默认模板和名为home.ctp的视图

当用户呼叫主页 / 时,主页视图会在default.ctp中呈现。

在我的视图中我有:

<?php

$this->set('title', 'This is the title');

$this->set('description', 'This is the description');

...
?>

在我的 default.ctp 中我有:

<title><?php echo $title; ?></title>
....

<meta name="description" content="<?php echo $description; ?>">
....

它可以正常工作,但是,这是在CakePHP中添加标题和元标记的正确方法吗?

谢谢!

1 个答案:

答案 0 :(得分:4)

这不是输出标题和描述变量的安全方法。

Cake确实有来自docs的outputting metatags提取的辅助函数:

<?php
echo $this->Html->meta(
    'description',
    'enter any meta description here'
);
?>
// Output
<meta name="description" content="enter any meta description here" />

替代地

您不必使用上述功能 - 但如果不这样做,则必须注意逃避变量。考虑一下这会发生什么:

$description = 'something with a "quote in it';

如果你只是盲目地回应变量 - 你将创建格式错误的html和/或允许注入攻击。因此,如果您适当地转义$title$description,则可以使用问题中的代码:

<title><?php echo htmlspecialchars($title); ?></title>
....
<meta name="description" content="<?php echo htmlspecialchars($description); ?>">