post PHP 的输入安全性

Input security for post PHP

我对 PHP 中 POST 数据的安全性有疑问。

上下文:

我有几个输入(文本、电子邮件、收音机)和一些文本区域。 乙

<input type="text" name="entries[]"> /* Input ARRAY */

<input type="text" name="username"> 

<textarea name="message[]">...</textarea> /* Textarea ARRAY */

我所做的是将所有值发送到 *.php 页面,然后打印所有这些值 乙

if($_POST)
{
$entries = htmlspecialchars("$_POST['entries']", ENT_QUOTES);
$username = htmlspecialchars("$_POST['username']", ENT_QUOTES);
$message = htmlspecialchars("$_POST['message']", ENT_QUOTES);

echo $username;
echo...
echo...
}

我不太了解安全。可以只使用 htmlspecialchars 吗...? 或者我需要使用其他功能吗?

数据只是在 *.php 页面上用 echo 打印(没有 MYSQL)

是的,我怀疑用户可以在每个 INPUT 上输入的内容,因为我不想将它们的内容限制为文本或数字或类似内容。

谢谢。

您需要遍历数组。

$entries = array_map('htmlentities', $_POST['entries']);
$username = htmlentities($_POST['username']);
$message = array_map('htmlentities', $_POST['message']);

或要包含 ENT_QUOTES,您可以使用:

$entries = array_map(function($x) {
    return htmlentities($x, ENT_QUOTES);
}, $_POST['entries']);

$message.

同样如此