background image

php 网站如何防止 sql 注入?

网站的运行安全肯定是每个站长必须考虑的问题,大家知道,大多数黑客攻击网站

都是采用 sql 注入,这就是我们常说的为什么最原始的静态的网站反而是最安全的。今天

我们讲讲 PHP 注入的安全规范,防止自己的网站被 sql 注入。

如今主流的网站开发语言还是 php,那我们就从 php 网站如何防止 sql 注入开始说起:

Php 注入的安全防范通过上面的过程,我们可以了解到 php 注入的原理和手法,当然

我们也同样可以制定出相应该的防范方法:

首先是对服务器的安全设置,这里主要是 php+mysql 的安全设置和 linux 主机的安全设置。

对 php+mysql 注射的防范,首先将 magic_quotes_gpc 设置为 On,display_errs 设置为 Off,

如果 id 型,我们利用 intval()将其转换成整数类型,如代码:

$idintval($id);

mysql_query”*fromexamplewherearticieid’$id’”;

mysql_query(”SELECT*FROMarticleWHEREarticleid”.intval($id).”")

如果是字符型就用 addslashes()

过滤一下,然后再过滤 %” ”

和 _”如:

$searchaddslashes($search);

$searchstr_replace(“_”,”\_”,$search);

$searchstr_replace(“%”,”\%”,$search);

当然也可以加 php 通用防注入代码:

/*************************

PHP 通用防注入安全代码

说明:

判断传递的变量中是否含有非法字符

如$_POST、$_GET

功能:

防注入

**************************/

//要过滤的非法字符

$ArrFiltratearray(”‘”,”;”,”union”);

//出错后要跳转的 url,不填则默认前一页