Heim >php教程 >php手册 >PHP防注入配置与php防注入代码

PHP防注入配置与php防注入代码

WBOY
WBOYOriginal
2016-06-13 10:12:531328Durchsuche

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)|/*.+?*/|

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn