PHP 过滤危险字符是指在 PHP 程序中对用户输入的数据进行处理,以防止恶意攻击,如 SQL 注入、跨站脚本攻击(XSS)等。通过过滤和转义用户输入的数据,可以减少安全风险。
问题描述:用户输入的数据被直接拼接到 SQL 查询中,导致恶意代码执行。
解决方法:使用预处理语句和参数绑定。
// 使用 PDO 预处理语句
$pdo = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username AND password = :password');
$stmt->bindParam(':username', $username);
$stmt->bindParam(':password', $password);
$stmt->execute();
问题描述:用户输入的数据被直接输出到 HTML 页面,导致恶意脚本执行。
解决方法:使用 htmlspecialchars 或 htmlentities 函数对输出数据进行编码。
// 使用 htmlspecialchars 函数
$input = $_GET['input'];
echo htmlspecialchars($input, ENT_QUOTES, 'UTF-8');
问题描述:用户上传的文件可能包含恶意代码。
解决方法:对上传的文件进行严格的验证和过滤。
// 检查文件类型和大小
if (isset($_FILES['file'])) {
$file = $_FILES['file'];
$fileType = $file['type'];
$fileSize = $file['size'];
if ($fileType !== 'image/jpeg' || $fileSize > 1048576) {
die('Invalid file');
}
// 移动文件到安全目录
move_uploaded_file($file['tmp_name'], 'uploads/' . basename($file['name']));
}
通过以上方法,可以有效过滤和转义危险字符,提高 PHP 应用的安全性。
领取专属 10元无门槛券
手把手带您无忧上云