Вы пропустили блок else. После этого кода:
if(is_array($value)) {
echo '<',$value,'>',htmlentities($value),'</',$value,'>';
........
}
добавить это:
} else {
echo $value;
}
Также я бы рекомендовал написать рекурсивную функцию, чтобы иметь возможность использовать массивы любой глубины.
В размещении содержания a SecureString
назад в a String
, Вы повторно вводите проблемы использования строк, которые перечислены здесь:
http://blogs.msdn.com/shawnfa/archive/2004/05/27/143254.aspx
С SecureString
, существуют возможности, которые предоставляются для маршалинга содержания в неуправляемую память, таким образом, можно получить доступ к данным и затем избавиться от данных при выполнении с ним.
Это опции, которые Вы просто не имеете с управляемым кодом. В работе с неуправляемыми байтами можно обнулить память, удостоверьтесь, что она не разбита на страницы к диску, и т.д., и т.д., который является точно, что Вы хотите сделать для сокращения поверхности атаки здесь.
Ключ здесь не должен делать другой экземпляр String
и работа с данными способом, где безопасностью легче управлять при контакте с этими данными (который, к сожалению, неуправляемый код прямо сейчас).