htmlspecialchars
函數是 PHP 中用于轉義 HTML 特殊字符的函數,它可以防止一些基本的 HTML 注入攻擊,例如跨站腳本(XSS)。然而,它并不能完全防止所有類型的注入攻擊。為了更有效地防止注入攻擊,你應該采取以下措施:
filter_var()
,來清理用戶輸入。$userInput = $_POST['userInput'];
$cleanedInput = filter_var($userInput, FILTER_SANITIZE_STRING);
// 使用 PDO
$pdo = new PDO('mysql:host=example.com;dbname=testdb', 'username', 'password');
$stmt = $pdo->prepare('INSERT INTO users (username, email) VALUES (:username, :email)');
$stmt->bindParam(':username', $username);
$stmt->bindParam(':email', $email);
$username = $_POST['username'];
$email = $_POST['email'];
$stmt->execute();
// 使用 MySQLi
$mysqli = new mysqli('example.com', 'username', 'password', 'testdb');
$stmt = $mysqli->prepare('INSERT INTO users (username, email) VALUES (?, ?)');
$stmt->bind_param('ss', $username, $email);
$username = $_POST['username'];
$email = $_POST['email'];
$stmt->execute();
在你的 PHP 腳本中,你可以設置 HTTP 響應頭 Content-Security-Policy
來定義允許加載的資源。
header('Content-Security-Policy: default-src \'self\'; script-src \'self\' https://trustedscripts.example.com; style-src \'self\' https://trustedstyles.example.com;');
總之,雖然 htmlspecialchars
可以幫助防止一些基本的 HTML 注入攻擊,但為了更全面地保護你的應用程序,你應該采取多種安全措施,包括驗證和過濾用戶輸入、使用預處理語句、實施內容安全策略以及定期更新和維護軟件。