0

可能重复:
在 PHP 中防止 SQL 注入的最佳方法?

我在 php 站点中的 html web 表单从客户端获取数据并将其放入 mysql 数据库。我想知道在将数据存储到 mysql 之前清理数据所需的步骤。

假设需要使用 PHP 执行此清理,然后将其插入 Mysql,您能否告诉我所有需要注意的事项?

作为一种特殊情况,除了一般的清理之外,我还想删除所有特殊字符、空格,并将所有字符转换为小写,然后再放入数据库。为此,我需要查看哪些功能?

我对php很陌生。

谢谢。

4

2 回答 2

4

1.mysqli_real_escape_string() 或mysql_real_escape_string() 转义引号

2.其他表单数据使用php filter_input

$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);

php手册中还有其他选项是链接

http://php.net/manual/en/function.filter-input.php

http://www.php.net/manual/en/filter.filters.sanitize.php

于 2012-10-17T17:51:48.250 回答
3

首先使用mysqli_real_escape_string()它将转义字符串中的引号来清理输入。

您可以strtolower()用于将字符转换为小写。

用于htmlspeiclachars()将特殊字符转换为 HTML 实体

使用正则表达式删除空格preg_replace( '/\s+/', ' ', $whatever );

如果要删除特殊字符,可以使用preg_replace('#[^\w()/.%\-&]#',"",$whatever);正则表达式。(来源

其他消毒过滤器参考这里

最后但并非最不重要的一点是,由于您是初学者,我建议您参考文档

于 2012-10-17T17:52:27.753 回答