我总是听说使用全局变量很危险。这适用于 Drupal 吗?看一下下面的例子:
function myFunction($bla) {
global $user;
if (isAuthenticated($user->uid)) {
print $secretCode;
}
}
这会被黑客攻击吗?
最佳答案
由于多种原因,全局变量可能很危险,其中一些包括:
- 困惑的命名空间
- 这使得维护变得困难并鼓励猴子修补,因为全局变量可以从任何地方修改
- 它们不是参照透明的
- 在内存管理语言中,全局变量可能成为内存泄漏的根源
- 它们使得大型应用程序/网站中的调试尤其困难,因为很难追踪它们的设置和修改位置。
对于您的用例来说,没有什么特别威胁的。应该没问题。如果你很害怕,你可以在评估之前确保 $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/