Conversation
get_group() 函数体第一行就是 `if($uid=="")$uid=$_SESSION['user_id'];`,
说明作者本意就是让 $uid 可选(不传则取当前登录用户),只是声明处漏了默认值。
PHP 7.0 下少传参数只会发一条 Warning,参数为 NULL 而 NULL == "" 恰好成立,
所以一直没暴露;PHP 7.1 引入 ArgumentCountError 后变成致命错误,页面直接白屏
(db_info.inc.php 里 ini_set("display_errors","Off"),连报错都看不到)。
以下 5 处均为无参调用 get_group(),全部受影响:
admin/changepass.php:37
admin/change_user_id.php:34
admin/privilege_add.php:22
admin/privilege_add.php:43
admin/privilege_delete.php:11
复现(PHP 7.1+):后台 Users -> Change PassWD 提交即白屏。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
get_group() 函数体第一行就是
if($uid=="")$uid=$_SESSION['user_id'];, 说明作者本意就是让 $uid 可选(不传则取当前登录用户),只是声明处漏了默认值。PHP 7.0 下少传参数只会发一条 Warning,参数为 NULL 而 NULL == "" 恰好成立, 所以一直没暴露;PHP 7.1 引入 ArgumentCountError 后变成致命错误,页面直接白屏 (db_info.inc.php 里 ini_set("display_errors","Off"),连报错都看不到)。
以下 5 处均为无参调用 get_group(),全部受影响:
admin/changepass.php:37
admin/change_user_id.php:34
admin/privilege_add.php:22
admin/privilege_add.php:43
admin/privilege_delete.php:11
复现(PHP 7.1+):后台 Users -> Change PassWD 提交即白屏。