gpt4 book ai didi

php - 此代码对 SQL 注入(inject)安全吗

转载 作者:可可西里 更新时间:2023-11-01 07:46:11 26 4
gpt4 key购买 nike

我想让我的代码尽可能安全,免受任何类型的攻击,我希望对下面使用的简单代码有一些了解。任何关于如何在它易受攻击时使其更安全以及为什么会很棒的指示。我读过使用准备好的语句是防止攻击的最佳做法。

<?php 

try {
$conn = new PDO('mysql:host=localhost;dbname=test', 'user', 'XXXXX');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('INSERT INTO people (name, email) VALUES (:name, :email)');

$stmt->execute(array(':name' => $_POST['name'], ':email' => $_POST['email']));

#If one or more rows were returned...

} catch(PDOException $e){
echo'ERROR: ' . $e->getMessage();
}
echo "Added $_POST[name] with email $_POST[email] succsessfully";
$conn = null;
?>

最佳答案

看起来您可以避免 SQL 注入(inject),但您现在在回显中遇到了 XSS 问题。确保在回显之前始终清理/转义用户输入。

echo "Added $_POST[name] with email $_POST[email] succsessfully";

应该变成

echo "Added" . htmlspecialchars($_POST['name']) . "with email" . htmlspecialchars($_POST['email']) . "succsessfully";

关于php - 此代码对 SQL 注入(inject)安全吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13150660/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com