【PHP】PHP网站常见一些安全漏洞及防御方法
<?php
// 防止SQL注入:
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
// 预处理语句防止SQL注入:
$stmt = $conn->prepare("SELECT * FROM users WHERE username = ? AND password = ?");
$stmt->bind_param('ss', $username, $password);
$stmt->execute();
// 防止XSS攻击:
$message = htmlspecialchars($message);
// 防止会话劫持:
ini_set('session.cookie_httponly', 1);
// 防止跨站请求伪造(CSRF):
verifyCSRFToken($csrf_token, $_SESSION['csrf_token']);
// 防止文件包含漏洞:
if (isset($_GET['filename'])) {
$filename = realpath('./' . $_GET['filename']);
if (strpos($filename, realpath('./')) === 0) {
include($filename);
} else {
echo '文件不在网站目录内,无法包含。';
}
}
// 防止命令注入:
$escapedCommand = escapeshellcmd($userInput);
?>
这段代码展示了如何防止PHP网站开发中常见的安全漏洞,包括SQL注入、XSS、会话劫持、CSRF和命令注入。在实际应用中,应该结合具体的框架和应用逻辑来实现安全的代码。
评论已关闭