PHP 获取参数值的安全性

标签 php security joomla parameters

我对 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/

相关文章:

php - 告诉 lessphp 我必须检查一个文件夹而不仅仅是一个文件来刷新 output.css?

css - Joomla Start 需要帮助

javascript - 将值从 PHP 传递到 JavaScript

php - Digital Ocean Ubuntu LAMP 服务器 : Laravel cannot access router group

ruby-on-rails - 在 Rails 中处理信用卡付款

Joomla Menu-别名不止一次

javascript - 单击时使用 Jquery 刷新 div

php - 使用 PHP zip 扩展构建的 Docker 镜像显示 "bundled libzip is deprecated"警告

javascript - 使用 httpOnly cookie 进行设备注册

python - 如何在python中查看对等方的ssl证书