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
.
同样如此
我对 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
.