【发布时间】:2013-05-02 21:19:05
【问题描述】:
我查阅了很多关于保持数据库安全的教程,但我仍然不知道我需要采取什么措施来保护我的数据库免受 SQL 注入和黑客攻击。
这是我一直用来清除任何用户输入的功能,但我觉得这还不是全部,我还忽略了哪些其他内容?
function CleanInput($value) {
stripslashes($value);
if(!is_numeric($value)) {
mysql_real_escape_string($value);
}
return $value;
}
【问题讨论】:
-
mysql_real_escape_string是deprecated. -
第 1 步,不要使用已弃用的函数。
-
第 2 步。阅读 mysqli php.net/manual/en/book.mysqli.php
-
Sod mysqli,使用 PDO。 php.net/manual/en.book.pdo.php
-
肯定无条件调用
stripslashes()是错误的。调用它的唯一正当理由是如果仍然启用了magic_quotes_gpc,并且必须检查这一点。甚至还有一个功能:de2.php.net/manual/en/function.get-magic-quotes-gpc.php
标签: php mysql database security sql-injection