如果您要打印到屏幕上,那么 HTMLspecialchars 应该没问题:
echo htmlspecialchars($_POST['one']);
它将任何潜在的恶意 javascript 和 HTML 转换为字符,<
以便它在源代码中显示为文本(意味着它无法执行),并且对于用户来说,它看起来就像屏幕上显示的原始输入:
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
?>
另一方面,如果您要插入数据库,那么您将需要做一些额外的工作。
插入数据库时,您确实需要使用准备好的语句(这将阻止任何人对您的数据库使用 SQL 做任何时髦的事情)。我更喜欢使用PDO来建立我的连接。
代码将如下所示(摘自prepare上的文档):
<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
FROM fruit
WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>