Risks of using PHP eval for string math

非 Y 不嫁゛ 提交于 2019-12-14 03:37:48

问题


I have a question about eval() secourity risks

This is my own code

<?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';
}

Result is will be:

yeah

My code workes well

It's what i want!

But i am afraid of the security risks!

Please offer a new solution


回答1:


If all you're doing is checking if something is less than 1, typecast $_GET['hackme'] to int or double.

$str = 'nabi<' . (int) $_GET['hackme'];



回答2:


There is zero security... Every code passed to hackme will be executed.



来源:https://stackoverflow.com/questions/28586982/risks-of-using-php-eval-for-string-math

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!