une*_*guy 5 php security mysqli bind
我目前正在使用mysqli,我想要一种方法来正确清理每一个用户输入.我正在寻找最简单的轻量级方法,因为我明白我不应该使用mysql_real_escape ....
我的查询是这样的
$stmt = $sql->prepare("INSERT INTO Persons (msg, ip, time, main, twit, city, lat, lon, lang)
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)");
Run Code Online (Sandbox Code Playgroud)
据我所知,我应该使用函数bindParam ...如果我这样使用它,我是否完全保护我的用户输入?
$stmt->bind_param('sssssssss', $_POST[msg], ('$ip'), ('$date'), '$_POST[main]', '$_POST[twit]', ('$cit'), ('$lat'), ('$lon'), '$_POST[lang]');
$stmt->execute();
$stmt->close();
Run Code Online (Sandbox Code Playgroud)
如果这不能保护我的用户输入,我该怎么做呢?
为了安全起见,您需要准备声明。如下所示(可能不是 100%,但可以给你一个想法)
$sql = new mysqli("localhost", "my_user", "my_password", "world");
$stmt = $sql->prepare("INSERT INTO Persons (msg, ip, time, main, twit, city, lat, lon, lang)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?)");
$stmt->bind_param("sssssssss",$_POST[msg], $ip, $date, $_POST[main], $_POST[twit], $cit, $lat, $lon, $_POST[lang]);
$stmt->execute();
Run Code Online (Sandbox Code Playgroud)