【发布时间】:2015-02-18 15:15:07
【问题描述】:
我对@987654321@ 安全风险有疑问
这是我自己的代码
<?php
$str = 'nabi<'.$_GET['hackme']; // $_GET['hackme']=2;
$str = str_replace("nabi", 1, $str);
$hmm = eval('return ('.$str.');');
if($hmm){
echo 'yeah';
}
else{
echo 'no';
}
结果将是:
yeah
我的代码运行良好
这就是我想要的!
但是我害怕安全风险!
请提供新的解决方案
【问题讨论】:
-
为什么字符串中有条件? XY 问题?
-
@Nabi 为什么必须是字符串?这似乎是 XY 问题
-
是的,这太愚蠢了......因为我有一个 $_POST['hackme']
-
牢记以下引用:如果
eval()是答案,那么您几乎肯定是问错了问题。 -- Rasmus Lerdorf,PHP 的 BDFL -
永远不要使用 eval。 永远。