我还在学习 PHP 和 SQL。我正在尝试为网站的事件列表创建一个简单的内容管理系统。所有输入表单字段都是文本区域或文本框(是的,我希望它们那样),并且我想让用户能够在这些字段中添加除了文本之外的 HTML 链接。以下功能似乎是开始清理我从用户那里获得的输入的好地方,但由于我是新手,所以我想获得更多知识渊博的开发人员的意见。我还应该做些什么来保护数据库?
PS 感谢这些功能的CSS-Tricks。
function cleanInput($input) {
$search = array(
'@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@' // Strip multi-line comments
);
$output = preg_replace($search, '', $input);
return $output;
}
function sanitize($input) {
if (is_array($input)) {
foreach($input as $var=>$val) {
$output[$var] = sanitize($val);
}
}
else {
if (get_magic_quotes_gpc()) {
$input = stripslashes($input);
}
$input = cleanInput($input);
$output = htmlentities($output);
$output = mysql_real_escape_string($input);
}
return $output;
}