如何保护多个选择框选项


How to secure multiple select box options?

您是否需要确保多个选择框的安全,因为已经设置了选项而不是用户输入?

我使用这个功能来确保定期输入:

function keepmesafe($input) 
 {
  if(get_magic_quotes_gpc() == true)
    {
     $input = stripslashes($input);
   }
   return htmlspecialchars($input);
}

但当我在多选中使用它时,我会收到以下警告:

警告:htmlspecialchar()要求参数1为字符串、数组在…中给定。。。

我理解这个警告,它需要一个字符串,但得到一个数组,所以如果你确实需要确保我需要在当前函数中更改什么,或者让任何人都有这样的函数?

正如警告所说,您正在向只接受字符串的函数发送数组。您应该向函数htmlspecialchars发送一个字符串,或者将函数修改为这样的内容:

    function keepmesafe($input) 
    {
        if(is_array($input))
        {
            foreach($input as $key => $value) 
            {
                $input[$key] = keepmesafe($value); 
            }   
            return $input;
        }

        if(get_magic_quotes_gpc() == true)
        {
            $input = stripslashes($input);
        }
        return htmlspecialchars($input);
    }

你可以在这里找到更多关于用户输入和安全的信息。