草庐IT

eval-stdin

全部标签

php - eval(),有什么意义呢?

关于eval()作为函数的官方文档说:Amongotherthings,thiscanbeusefulforstoringcodeinadatabasetextfieldforlaterexecution.我对此非常困惑。PHP文档是否建议将PHP行存储到数据库中?什么?这不是很不安全吗?如果我知道数据库中有一个作为PHP执行的字符串怎么办?那不是特别危险吗?我只需要一个Sql注入(inject)来对该网站做任何我想做的事,我想做的事。我可以删除整个数据库,我可以从脚本中获取所有内容,我可以做任何事情。这怎么会有这么大的帮助?能否请您提供一些示例,说明此eval()有何用处?另外,我可

shell - 我如何检查 stdin 是否存在于 PHP ( php-cgi ) 中?

设置和背景我正在处理需要作为/usr/bin/php-cgi而不是/usr/local/bin/php运行的脚本,我遇到了麻烦检查stdin如果我使用/usr/local/bin/php作为解释器,我可以做类似的事情ifdefined('STDIN'){...}这似乎不适用于php-cgi-看起来总是未定义。我检查了manpageforphp-cgi但没有发现它很有帮助。另外,如果我理解正确的话,STDIN常量是php://stdin的文件句柄。我在某处读到常量不应该在php-cgi中可用要求shebang需要是#!/usr/bin/php-cgi-q脚本有时会被传递参数脚本有时会通过

php - disable_functions php.ini eval 函数仍然有效

我在试图禁用我的php.ini中的某些功能时遇到了一个小问题。首先,我不是服务器的所有者,所以我无法更改主php.ini配置。但是我试图用服务器所有者给我的指令来改变它。这是我在我创建的php.ini文件中放入的行disable_functions=eval,exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source在我的phpinfo()中,我可以在本地值和主值中看到这些功能被禁用。但我的问题从这里开始。在女巫的同一个文件中,我运行phpinf

php - 使用 proc_open 时从 STDIN 管道读取

我想做一个网站,人们可以在线编译和运行他们的代码,因此我们需要找到一种交互方式让用户发送指令。其实首先想到的是exec()或者system(),但是当用户要输入某事时,这种方式就不行了。所以我们必须使用proc_open()。比如下面的代码intmain(){inta;printf("pleaseinputainteger\n");scanf("%d",&a);printf("HelloWorld%d!\n",a);return0;}当我使用proc_open()时,像这样$descriptorspec=array(0=>array('pipe','r'),1=>array('pipe

php - eval函数的替代方案是什么?

我在当前项目中使用eval()是这样的:if(class_exists($class_name))//$class_namedependsonuserinputeval($class_name.'::MyStaticMethod()');eval()当且仅当名称为$class_name的类存在时执行,所以它有点安全,但我仍然认为这不是最好的解决方案。在没有eval()的情况下,我是否可以像上面的代码那样做? 最佳答案 我最近回答了thisquestion.myanswer的最后一部分完美地回答了这个问题,并且比这里提供的答案对fut

php - 如何在 PHPUnit 中测试 STDIN

我有读取器类,它从标准输入读取并返回读取值。classReader{constSTREAM_READ='php://stdin';private$_streamHandle;publicfunction__construct($stream=self::STREAM_READ){$this->_streamHandle=fopen($stream,'r');}publicfunctiongetReadedValue(){$value=trim(fgets($this->_streamHandle));return$value;}publicfunction__destruct(){fc

php - eval on base64 encoded $_POST ['e' ] 变量实际上做了什么?

好的,这是我用Google搜索的内容:似乎在qcubed目录中上传了一个名为“image.php”的上传文件。该image.php文件包含以下base64代码:aWYoaXNzZXQoJF9QT1NUWydlJ10pKWV2YWwoYmFzZTY0X2RlY29kZSgkX1BPU1RbJ2UnXSkpO2VjaG8gJzMxMzkzNjJlMzIzMzMxMmQzMTM3MzIyZTMyMzgzYTY5NjY2MTYzNjU3MjZkNzA3NTYyNmQ2OTYzNjUzYTYxNjY2MTYzMzQzMjY1NzI2OTMwMzInOw==解码它添加到这个:if(isset($_

php - 使用 include 或 eval 自定义流包装器?

概览我目前正在编写一个模板引擎。它甚至支持多种“格式”。目前它可以解析.php文件和.tpl(特定于此引擎)。我会给你一个关于两者的小例子,只是为了给你一个想法。模板.php:Name:h($name)?>Posts:-h($post->name)?>(comments)?>comments)render('post/shortpost',array('post'=>$post))?>这基本上只是一个标准的PHP。模板.tplName:{>$name}Posts:{foreach($postsas$post):}-{>$post->name}({=count($post->commen

php - Perl exec ('/usr/bin/php -v' ) 在 CentOS 6.6 上挂起,除非先关闭 STDIN

我的问题是,这是预期的(为什么?)和/或这种行为是否也出现在其他系统上?环境:#cat/etc/*-releaseCentOSrelease6.6(Final)...#perl-vThisisperl,v5.10.1(*)builtforx86_64-linux-thread-multi...#php-vPHP5.4.41(cli)(built:May14201523:15:28)...迷你.pl:#!/usr/bin/perlexec('/usr/bin/php-v');运行它并查看挂起的PHP进程:#perlmini.pl&[2]16958[1]Killedperlmini.pl#

php - eval() 代码中的意外 $end

我不想问这样一个具体的问题,但我遇到了一个我无法弄清楚的错误。这是一个按小时运行的cron作业。我正在创建一组任务,每个任务都有一个日期检查,应该是eval()。$todo=array();$todo[]=array("date('z')%3==0","Task1");$todo[]=array("date('N')==1","Task2");foreach($todoas$task){if(eval($task[0])){echo$task[1];}}出于某种原因,eval()行给我这个错误。请注意,我在这两项任务中都遇到了这个错误。Parseerror:syntaxerror,un