php中防注入有两种一种是sql防注入,另一种上像很多cms一样的过程所有提交过来的变量,还有一种是可以直接配置php.ini,下面我分别给大家介绍介绍。
1.将safe.func.php传到要包含的文件的目录
2.在页面中加入防护,有两种做法,根据情况二选一即可:
a).在所需要防护的页面加入代码
require_once('safe.func.php');
就可以做到页面防注入、跨站
如果想整站防注,就在网站的一个公用文件中,如数据库链接文件config.inc.php中!
添加require_once('safe.func.php');来调用本代码
safe.func.php 代码如下:
代码如下 |
复制代码 |
/**
* 防注入
*
* "
操作IP: ".$_SERVER["REMOTE_ADDR"]." 操作时间: ".strftime("%Y-%m-%d %H:%M:%S")." 操作页面:".$_SERVER["PHP_SELF"]." 提交方式: ".$_SERVER["REQUEST_METHOD"]." 提交参数: ".$StrFiltKey." 提交数据: ".$StrFiltValue);
*/
function safe_custom_error($errno, $errstr, $errfile, $errline) {
echo "Error number: [$errno],error on line $errline in $errfile ";
die();
}
set_error_handler("safe_custom_error", E_ERROR);
function safe_stop_attack($k, $v, $method=0) {
$filter = array(
"'|(and|or).+?(>||EXEC|UNION.+?SELECT|UPDATE.+?SET|INSERTs+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)s+(TABLE|DATABASE)",//get
"(and|or).{1,6}?(=|>|in|like)|/*.+?*/|
|