我对 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 = ' ';
}
然后再次回显即可。有必要吗?有更好的办法吗?
最佳答案
是的,这可行并且安全。
如果 $conType 可以是任何参数,那么使用 htmlentities() 对其进行转义以防止 XSS 非常重要:
echo htmlentities($conType)
你的做法甚至更好,尽管需要付出更多的努力。 ;-)
如果您需要转义许多参数而不仅仅是一个小的自定义,请记住将来使用 htmlentities。作为建议,请在继续开发 php 应用程序之前先了解一下 php 和安全性(如果您打算这样做)。作为一名 Web 开发人员(尤其是 php 开发人员),您确实应该了解“XSS”、“SQL 注入(inject)”和“CSRF”等主题。 :-)
[作为 htmlentities 的替代品,有 htmlspecialchars,它编码较少的字符,请参阅 htmlentities() vs. htmlspecialchars()进行比较]
关于PHP 获取参数值的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18595402/