我一直在开发网站,自开始以来,我一直在思考如何解决这个问题。
所以这里是
我的网站有很多输入字段,并且随之而来的是,我注意到如果用户使用'
,就会有SQL error
。
我一直在寻找类似的问题,但没有找到任何类似的问题,但我相信我可能会以错误的方式进行搜索。
这是我执行查询的方式:
我为查询创建了一个函数:
function query($sql) {
$stmt = $conn->prepare($sql);
$stmt->execute();
}
然后我像这样使用它:
$sql = "INSERT INTO users(fname,lname,username) VALUES('$fname','$lname','$username')";
$stmt = $dbconn->query($sql); // $dbconn is the variable of my db connection class
我曾考虑过使用str_replace将'
替换为\
,但是如果用户使用\
,它将被转换为'
,并非如此很好的解决方案。
答案 0 :(得分:-2)
使用存储过程并将数据作为参数传递。
此外,仅向您的网站登录用户授予数据库中的“执行”权限。
这将防止黑客运行您存储过程中没有的任何数据库查询/更新,并防止SQL注入攻击并提高性能。