我很困惑,希望您能帮我澄清一下。最近的匿名者/Lulsec攻击后,我开始质疑我的php/mysql安全性。
所以我想知道,如何保护PHP和Mysql。
问题:有人能为我解释一下,在处理引号方面,什么是最佳实践?
- 特别是在表单中,我需要某种htmlspecialchars来保护html,对吗?
- 通过表单可以利用PHP吗?是否需要任何形式的保护?
- 我应该仅在查询之前使用 real_escape_string 吗?在PHP内部使用它是否有错/不好(请参见 sanitize_post 函数)?
目前我正在使用以下函数。该函数“清理”了所有$_POST和$_GET变量。这样做是否“安全”?
function sanitize_post($array) {
global $db;
if(is_array($array)) {
foreach($array as $key=>$value) {
if(is_array($array[$key])) {
$array[$key] = sanitize_post($array[$key]);
} elseif(is_string($array[$key])) {
$array[$key] = $db->real_escape_string(strtr(stripslashes(trim($array[$key])), array("'" => '', '"' => '')));
}
}
} elseif(is_string($array)) {
$array = $db->real_escape_string(strtr(stripslashes(trim($array)), array("'" => '', '"' => '')));
}
return $array;
}
我正在使用PHP 5.3.5和Mysql 5.1.54。谢谢。