2

我对PHP不太了解,所以请原谅我的无知。我试图在 Joomla 管理区域中输入一个参数值,以将一个字符串附加到我的引导容器类,以将页面从固定布局更改为流体布局。

我正在检索这样的值...

$conType = $this->params->get('conType','');

然后简单地设置如下......

class="container<?php echo "$conType"; ?>

但是,我担心(对 PHP 知之甚少)这是否是一个安全问题,因为任何值都可以设置为 $conType - 这是一个问题吗?如果是这样,这会起作用吗...?

$conType = (int) $this->params->get('conType','0');

if($conType == "1")
{
 $conType = "-fluid";
}
else
{
 $conType = ' ';
}

然后再重复一遍。那有必要吗?有没有更好的办法?

4

1 回答 1

3

是的,这会起作用并且是安全的。

如果 $conType 可以是任何参数,请务必使用 htmlentities() 将其转义以防止 XSS:

echo htmlentities($conType)

你做的方式更好,尽管它需要更多的努力。;-)

如果您需要转义许多参数而不仅仅是一个小的自定义,请记住在将来使用 htmlentities。作为建议,请在继续开发 php 应用程序之前了解 php 和安全性(如果您打算这样做)。作为 Web 开发人员(尤其是 php 开发人员),您确实应该了解诸如“XSS”、“SQL 注入”和“CSRF”之类的主题。:-)

[作为 htmlentities 的替代品,还有 htmlspecialchars,它编码的字符更少,请参阅htmlentities() 与 htmlspecialchars()进行比较]

于 2013-09-03T14:58:49.553 回答