php - 在 Drupal 中使用 "global"用户是否危险?

标签 php drupal

我总是听说使用全局变量很危险。这适用于 Drupal 吗?看一下下面的例子:

function myFunction($bla) {
   global $user;
   if (isAuthenticated($user->uid)) {
        print $secretCode;
   }

}

这会被黑客攻击吗?

最佳答案

由于多种原因,全局变量可能很危险,其中一些包括:

  1. 困惑的命名空间
  2. 这使得维护变得困难并鼓励猴子修补,因为全局变量可以从任何地方修改
  3. 它们不是参照透明的
  4. 在内存管理语言中,全局变量可能成为内存泄漏的根源
  5. 它们使得大型应用程序/网站中的调试尤其困难,因为很难追踪它们的设置和修改位置。

对于您的用例来说,没有什么特别威胁的。应该没问题。如果你很害怕,你可以在评估之前确保 $user->uid 是一个整数:

function myFunction($bla) {
   global $user;
   if( is_int($user->uid) ){
      if (isAuthenticated($user->uid)) {
         print $secretCode;
      }
   }
}

但这可能是不必要的。

关于php - 在 Drupal 中使用 "global"用户是否危险?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1386377/

相关文章:

php - 停止从 Yii 中的 Assets 文件夹加载 jquery 库

PHP 发布和条件错误

php - Twig - 动态数组键

php - 使用附加列将 PHP 数组放入 MySQL

jquery - 更改元素的文本而不影响同级标签 (jQuery)

html - CSS 未正确更新

javascript - Codeigniter 不从多表单页面返回第一个提交名称

drupal - drupal分类法术语路径以返回别名

jquery - 包含 jQuery 库的正确方法

Drupal:更新数据库中的文件系统路径