Php 如何使用eval()function操作base64编码的脚本?

Php 如何使用eval()function操作base64编码的脚本?,php,eval,decode,encode,Php,Eval,Decode,Encode,请参阅下面的代码: <?php $str1 = 'My Name Is : '; $str2 = 'Dvid!'; echo $str1.$str2; ?> PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8+DQo= 现在如何使用编码的php文件? 我认为eval()函数就是答案 因此,我更改了php文件,如下所示: <?php $s

请参阅下面的代码:

<?php
$str1 = 'My Name Is : ';
$str2 = 'Dvid!';
echo $str1.$str2;
?>
PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8+DQo=
现在如何使用编码的php文件?
我认为eval()函数就是答案
因此,我更改了php文件,如下所示:

<?php
$str = 'PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8+DQo=';
eval("base64_decode(\$str);");
?>

我的问题是我真的不知道为什么输出是空白的(白色屏幕)?
我如何解决这个问题

编辑1:
在回答如下问题后,我改为使用include进行测试,结果发现一个错误:

<?php
include 'data://text/plain;base64,PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8';
?>

和错误:

重要提示:
我正在寻找一种不改变服务器配置的方法,因为发布后我们无法访问远程主机

编辑2:
我搬走了

<?php
?>

base64编码->中的部件仍有空白屏幕

感谢您的关注这里有两个问题:

  • 您正在评估代码:

    base64_decode($str);
    
    这没什么用

  • 那里仍然有
    标记,
    eval
    无法处理
  • 因此,一个有趣的解决方案是使用
    include
    ,而使用PHP
    data://
    URI:

    include 'data://text/plain;base64,PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8+DQo=';
    

    请注意,您需要启用
    allow\u url\u include
    ,才能正常工作。

    file\u get\u contents有什么问题才能打开文件。您好,但我最终需要一个可行的网站(echo只是一个示例-我说的是一个包含许多html元素的完整网站),而不是纯文本。您的代码还有三个错误。请插入完整的代码@月光:这不是纯文本,也不包含错误。通读整件事。为什么base64_解码($str);不执行任何操作->返回php代码(作为字符串)。所以我们可以计算该字符串。@MoonLight:首先,是的,
    base64\u decode
    将PHP作为字符串返回以进行计算。然而,你没有正确地评估它;见科尔·约翰逊的答案。无论如何,关键是你不能在它上面使用
    eval
    ,因为它里面有
    标签
    eval
    仅处理“原始”PHP代码。最后,请参阅脚注了解为什么会出现错误。引述:“请注意,您需要启用allow_url_include才能工作。”如果不按照您的要求重新配置服务器,这是不可能的。这到底有什么意义?混淆?如果是的话,不用麻烦了。Base64无法工作。我们可以通过重新配置服务器来修复该错误。但我没有远程访问主机服务器的权限。我们可以对eval()函数做些什么吗?或者给我看看另一种可行的模糊处理方法!