清理数据PHP功能

时间:2013-11-23 14:00:21

标签: php mysql sanitization

无法使用PDO。

我在这里读了很多问题,这是我第一次尝试为办公室以外的人做点什么,所以我需要清理数据输入,研究它发现了这个功能。

function clean_data($input){
$input = trim(htmlentities(strip_tags($input,",")));
if (get_magic_quotes_gpc())
$input = stripslashes($input);
$input = mysql_real_escape_string($input);
return $input;
}

示例:

$vartodb = clean_data($_POST['yourformfieldhere']);

确定此功能可以清理数据吗?

2 个答案:

答案 0 :(得分:1)

不是。

如果要将变量放在数据库中,最好使用带有绑定变量的预准备语句。如果您不能使用PDO,您也可以使用mysqli。如果您真的遇到mysql_*函数,则只需要mysql_real_escape_string

如果您输出到浏览器,则只需htmlspecialchars

简而言之,没有通用的清理功能,您需要为输出的介质准备/转义/编码数据。

答案 1 :(得分:0)

这是一个很大的话题 - 这个功能还可以,但有更好的方法可以做到。

检查mysqli_real_escape_string:http://php.net/manual/en/mysqli.real-escape-string.php

不要忘记准备好的陈述:http://php.net/manual/en/pdo.prepared-statements.php

另外,如果您的输入是整数类型怎么办?你应该进行类型转换。

此外,如果有人在您的网络表单中添加了额外的字段,该怎么办?

虽然这个功能确实做了一些消毒,但它只是冰山一角,就像我说这是一个很大的话题。

在我看来,这是草率的代码,提供的保护很少。