首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >assert()不自动计算代码

assert()不自动计算代码
EN

Stack Overflow用户
提问于 2018-09-05 06:44:34
回答 1查看 265关注 0票数 0

我的PHP版本是7.2.9-1。在下面的练习中,行assert上有一个代码注入:

代码语言:javascript
复制
extract($_POST);
function goAway() {
    error_log("Hacking attempt.");
    header('Location: /error/');
}

if (!isset($pi) || !is_numeric($pi)) {
    goAway();
}

if (!assert("(int)$pi == 3")) {
    echo "This is not pi.";
} else {
    echo "This might be pi.";
}

assert()操作计算PHP代码,它包含用户输入。但是,我使用的是pi=phpinfo(),服务器不会phpinfo(),而是只输出This might be pi.。有没有人能解释一下?

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 07:23:57

PHP手册中的:

断言不应用于正常的运行时操作,如输入参数检查。根据经验,如果断言检查未激活,您的代码应该始终能够正确工作。

在您的PHP配置中可能只是禁用了断言。检查您的php.ini文件或assert_options()

此外,根据您提供的代码示例,这是,而不是assert的用途。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52174872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档