所以这是我与之合作的第一个项目,我不使用预先构建的CMS,并且我试图确保提交的数据是安全的。
我的问题分为两部分:a)我检查$ _POST值的方式是否足够安全?这是:
function validateInput($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
$id = validateInput($_POST['id']);
$name = validateInput($_POST['name']);
$address = validateInput($_POST['address']);
b)如果没有,我怎样才能使它更安全,更不可能被SQL注入?
我真的很感激这方面的一些帮助。谢谢你们
答案 0 :(得分:0)
你所做的是一个很好的开始,不要让任何人告诉你不要逃避特殊角色。
官方的答案是使用现代的mysql方法:mysqli或PDO
请谷歌那些PHP:mysqli和php:PDO
有关于这些的很好的文档。
不推荐使用任何mysql_escape _...。
还有一点需要注意:stripslashes不会添加任何安全值。
答案 1 :(得分:0)
使用mysqli准备变量:
$id = mysqli_real_escape_string($db, $_POST['id']);
$name = mysqli_real_escape_string($db, $_POST['name']);
$address = mysqli_real_escape_string($db, $_POST['address']);
或者使用数据库对象(在打开连接时定义):
$id = $db->real_escape_string($_POST['id']);
$name = $db->real_escape_string($_POST['name']);
$address = $db->real_escape_string($_POST['address']);