如何正确清理PHP中的用户输入:防范XSS和SQL注入
大家好!我是一名PHP新手开发者,遇到了安全问题。我的网站有一个注册和评论表单。我接收用户数据后直接插入数据库并输出到页面。最近发现有人在姓名字段输入了这样的代码:``,输出到页面时这个脚本被执行了。我还听说过SQL注入,但不完全理解如何防范。
以下是我的代码示例:
```php
// 从表单获取数据
$name = $_POST['name'];
$email = $_POST['email'];
// 保存到数据库 (MySQL)
$query = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
mysqli_query($connection, $query);
// 输出到页面
echo "你好, $name!";
```
如何正确清理数据?需要使用 `htmlspecialchars()` 或 `strip_tags()` 吗?对于数据库,需要使用 `mysqli_real_escape_string()` 吗?或者有更现代的方法?请告诉我PHP 8+的最佳实践。
Tags: php