为了使此代码更安全,我需要做些什么更改

时间:2019-05-01 01:36:24

标签: php security

我正在为大学做作业,并且此代码将经过安全性和高效性测试,这是获取矩形区域的基本应用程序

define('MIN_VALUE', '0'); //made constant for security  

define('MAX_VALUE', '10000000'); //made constant for security  


if(is_null($_GET['width']) && is_null($_GET['height']))
{
        echo "width and height must have a value";
}
else
{
    //assiang the value to user input
    define('INT_WD', $_GET['width']);
    define('INT_HE', $_GET['height']);



    if (is_numeric(INT_WD) && is_numeric(INT_HE)) //validate that its the proper value
    {


        if((INT_WD < MIN_VALUE || INT_WD > MAX_VALUE) && (INT_HE < MIN_VALUE || INT_HE > MAX_VALUE))
        {
            echo "width and height must be between " . MIN_VALUE . " and " . MAX_VALUE;
        }

        else
        {

            $area = INT_WD * INT_HE;
            echo htmlentities("The Area of The Rectangle is " . $area ." cm2"); //escape the output 
        }
    } 
    else
    {
            echo("width and height must be an integer or float");
    }
}

你们怎么看,我如何提高它的安全性和程序的效率

1 个答案:

答案 0 :(得分:-1)

您必须清理用户输入。

您可以像这样使它更安全:     define('INT_WD', strip_tags($_GET['width'])); define('INT_HE', strip_tags($_GET['height']));

这将删除所有可以通过<script>标签进行XSS攻击的html标签。

define()是不必要的。