php防注入安全代码,PHP防注入安全代码

PHP防注入安全代码

PHP

#防注入2012-12-21 15:43

怕网站被注入的朋友们看过来了,今天分享个代码。

1.将safe.func.php传到要包含的文件的目录

2.在页面中加入防护,有两种做法,根据情况二选一即可:

a).在所需要防护的页面加入代码

require_once('safe.func.php');

就可以做到页面防注入、跨站

如果想整站防注,就在网站的一个公用文件中,如数据库链接文件config.inc.php中!

添加require_once('safe.func.php');来调用本代码

常用php系统添加文件

PHPCMS V9 phpcmsase.php

PHPWIND8.7 datasql_config.php

DEDECMS5.7 datacommon.inc.php

DiscuzX2   configconfig_global.php

Wordpress   wp-config.php

Metinfo   includehead.php

b).在每个文件最前加上代码

在php.ini中找到:

Automatically add files before or after any PHP document.

auto_prepend_file = safe.func.php路径;

safe.func.php 代码如下:

/**

* 防注入 2012年12月21日 14:04:33 http://yige.org/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).+?(>|

"(and|or).{1,6}?(=|>|

);

$filter = isset($filter[$method]) ? $filter[$method] : $filter[0];

if(is_array($v)) {

$v = implode($v);

}

if (preg_match("/" . $filter . "/is", $v) == 1) {

exit("本次操作已记录。请不要继续非法操作。");

}

}

if (isset($_GET)) {

foreach($_GET as $k => $v) safe_stop_attack($k, $v, 0);

}

if (isset($_POST)) {

foreach($_POST as $k => $v) safe_stop_attack($k, $v, 1);

}

if (isset($_COOKIE)) {

foreach($_COOKIE as $k => $v) safe_stop_attack($k, $v, 1);

}

相关文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值