Я хочу разрешить пользователям отправлять ввод через textarea
сформируйте отправку и выполните хэш SHA256 для представленного текста. Хеш подвержен атаке? Должен ли я «очистить» вход перед хэшированием? И если так, каков наилучший способ приблизиться к этому? Достаточно ли использовать strip_tags
или я могу преобразовать вход, выполнив htmlspecialchars()
функция на строке и т. д.
Пример кода будет
<html>
<head>
<title>SHA256 on user input</title>
</head>
<body>
<?
if ($_SERVER['REQUEST_METHOD'] != 'POST' || empty($_POST['hashThis']) ):
?>
<form name="user_data" method="POST" action="">
<textarea name="hashThis"></textarea>
<input type="submit" name="submit" value="submit" />
</form>
<?
else:
echo hash('sha256', $_POST['hashThis']);
endif;
?>
</body>
</html>
Пока выполнение хэша является только то, что вы делаете с помощью ввода пользователя, это совершенно безопасно. Вам не нужно выполнять какую-либо предварительную обработку данных, чтобы сделать их безопасными для хэширования, и до тех пор, пока у вас не включен необработанный вывод (по умолчанию он отключен), вывод будет безопасным для печати.
Других решений пока нет …