问题标签 [register-globals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
2259 浏览

php - 关闭 register_globals 使代码工作

我继承了一些遗留的 PHP 代码,这些代码是在使用标准做法时写回的register_globals(从 PHP 4.2.0 开始,此指令默认为关闭,于 2002 年 4 月 22 日发布)。

我们现在知道启用它对安全性不利。问题是如何在代码中找到我需要使用的所有$_GET地方$_POST?我唯一的想法是设置错误报告以警告未初始化的变量,然后测试站点的每个部分。有没有更简单的方法?我必须测试站点中的每个代码路径还是 PHP 会基于文件给出警告?

0 投票
4 回答
10574 浏览

php - 为什么 REGISTER_GLOBALS 如此糟糕?

我不是 PHP 开发人员,但我在几个地方看到人们似乎将其视为瘟疫之类的东西。为什么?

0 投票
2 回答
2842 浏览

php - 处理 register_globals

我不确定这是否会被标记为社区 wiki,但无论如何:

有没有一种简单的方法可以杀死 register_globals?我正在开发一个 PHP 框架,现在,我只是将脚本设置为在 register_globals 为 On 时终止。虽然我更喜欢强迫人们禁用它,但有些服务器仍然有它。

我知道在 PHP 5.3.0 中 register_globals 已被弃用,在 PHP 6 中它将被完全删除,但在它仍然存在时处理它总是一件好事。

我看到了一些方法,我目前正在考虑使用这个:

不过这里有一些问题。这是资源激励,特别是当有大量输入数据时。我不确定在运行时禁用它是否会起作用,例如:

有没有我没听说过的更好的方法来摆脱 register_globals?谢谢。

0 投票
2 回答
174 浏览

php - 出现的 register_globals 警告消息是什么?

我有一个页面重定向到一个名为 customproofs.php 的页面。

当它重定向到该页面时,会出现以下警告消息:

警告:未知:您的脚本可能依赖于在 PHP 4.2.3 之前存在的会话副作用。请注意,除非启用了 register_globals,否则会话扩展不会将全局变量视为数据源。您可以通过分别在第 0 行的未知中将 session.bug_compat_42 或 session.bug_compat_warn 设置为 off 来禁用此功能和此警告

这是否意味着我需要更改 php.ini 文件中的某些内容?如何更改 Web 服务器上特定文件夹的 php.ini 文件?

是否正在更改设置以使消息消失?为什么我会收到此消息?

该代码现在可以正常工作。我可以告诉警告不要出现吗?

0 投票
6 回答
2781 浏览

php - $_POST 和关联数组中的变量变量

我可能有点厚,但我似乎无法找到这个问题的答案。我正在从一个注册全局变量打开的服务器移动到一个关闭它的服务器。这是一件好事,但不幸的是,我已经习惯了多年使用寄存器全局变量打开,这导致我编写草率的代码。我现在正试图解决这个问题。

我正在尝试重写一些在 $_POST 中有变量的旧代码。

我知道这是一个愚蠢的例子,但它说明了我要解决的问题。以下将与注册全局变量一起使用:

如何在注册全局变量关闭的情况下进行这项工作?以下显然不起作用:

请对我放轻松-我知道我可能很愚蠢,但我似乎无法理解这一点。

0 投票
2 回答
25101 浏览

php - php 通过 .htaccess 注册全局变量开/关

我在 2 个不同的文件夹上有 2 个脚本。其中一个需要将寄存器全局变量设置为 On,另一个设置为 Off。

是否可以在一个文件夹上启用 regsiter 全局变量并在另一个文件夹上禁用它?(也许带有 .htaccess ?)

问候

0 投票
5 回答
1972 浏览

php - 如何在 PHP 中获取 $_GET 变量

我正在研究几年前构建的应用程序,该应用程序最近停止正常工作。老程序员说,他可能正在访问$_GET$_POST变量而不是从中读取它们$_GET[] array,而是通过register_globals

我想问:在$_GET不使用数组的情况下访问变量有哪些不同的方法$_GET[](例如直接方法?),如果知道,我如何检查这个应用程序是否使用它们中的任何一个?

先感谢您

编辑:我记得的其他方式是register_globals,不是magic_quotes。另外,我不想使用它,而是检测它是否被使用并且在最新的服务器更新中已弃用(什么可以解释为什么应用程序停止正常工作)

编辑:我今天的英语很糟糕。正如我在一个答案中解释的那样:我需要检查原始程序员是否使用了一些晦涩和/或不推荐使用的从查询字符串获取变量到 PHP 的方法,因此现在使用的值应用程序是错误的/未初始化

重要编辑import_request_variables不在桌面上,未使用。所有$_数组也都不在讨论范围内,因为最新的更新不会破坏它们(=>它们仍然有效)。如何检测哪些变量被初始化register_globals

另一个编辑:我发现了这个:

它是否已被最新更新之一(最多 1 周前)破坏?

0 投票
5 回答
1459 浏览

php - 查找需要 register_globals 的 PHP 脚本

我继承了一个 Web 服务器,里面装满了需要register_globals开启的代码。其中大部分是由多年来来来往往的随机人员编写的自定义代码。我已经在我知道的脚本中修复了大部分问题,但我的问题是找到我不知道的脚本。

我正在考虑编写一个应用程序来扫描 Web 服务器上的每个目录,以识别需要register_globals. 有没有一个好的策略来做到这一点?

我考虑过的一种方法是强制 PHP 报告所有错误、执行脚本和检查未定义的变量通知。我可以为此构建一个读取STDERR流的应用程序。

你能想到什么更好的方法吗?

0 投票
3 回答
1487 浏览

php - 在 Register_Globals 关闭的情况下使用 Xampp 禁止访问

我最近了解到register_globalsphp.ini文件中关闭更安全。

但是,当使用以下脚本时,它在register_globals打开和register_globals关闭时工作我Error 403 Access Forbidden在按下提交按钮后收到一条消息:

我做错了什么,只有在register_globals关闭时才会收到此错误消息。我在 Windows XP 上,我使用的是 Xampp 1.7.4,而且我是菜鸟 :)

0 投票
3 回答
2120 浏览

php - 将大型 php 项目从 register_globals 转换为 _GET["param"]

我有一个相当大的 php 站点,它是为 php4 编写的,并且启用了 register_globals。这是旧的自定义 CMS。现在我想在没有 register_globals 的 php5 主机上运行它。是否可以使用一些脚本自动更改从 $id 解析为 $_GET["id"] 的参数?

wget -r我可以从这个网站上获取参数名称。

它有几十个 php 脚本,手动进行此更改并不容易。

PS:更新:我只想转换 GET 变量。附加行是$var_name = $_GET["var_name"]针对每个参数的。该行应该在脚本中插入非常高的位置,例如通过<? ?>在最顶部添加一个新部分。