在网上只找到了一种破解Mysql数据库的方法——sql注入。但是,我还找到了一个关于如何防止不需要的字符进入的解决方案mysql_query:
$query = sprintf("SELECT * FROM sometable WHERE somevar='%s'",
mysql_real_escape_string($var));
mysql_query($query);
然而,许多人强烈建议切换到其他扩展来使用 Mysql(例如 PDO),因为考虑到原始 API 先验是不安全的并且功能不够。我不是在抱怨后者,但安全对我来说很重要。
问题是:上面的代码是否完全保护我免受黑客攻击?如果没有,我是否可以在不切换到其他扩展程序的情况下完全安全?
要防止 SQL 注入,请切换到
PDO或扩展名mysqli并使用bindParam.功能
mysql_*已弃用,不再受支持。用法示例
PDO文档
例如
mysqli文档
如果我们仅在“黑客攻击请求的安全性”的上下文中考虑这种情况,那么答案是:“是的,上面的代码完全可以抵御黑客攻击。”
但是,在开发时,还需要考虑其他几点。
不,你并不完全安全。直接连接到 MySQL 服务器是不安全的。在 MySQL 用户设置和防火墙设置中限制可以连接到数据库的 IP 地址。