我对eval()
安全隐患
这是我自己的代码
<?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
我的代码运作良好
这就是我想要的!
但我担心安全风险!
请提供新的解决方案
答案 0 :(得分:1)
如果你所做的只是检查是否小于1,则将类型$_GET['hackme']
强制转换为int或double。
$str = 'nabi<' . (int) $_GET['hackme'];
答案 1 :(得分:0)
安全性为零......传递给hackme
的每个代码都将被执行。