首页 > 编程知识 正文

包含mysql防注入通用代码的词条

时间:2023-12-27 22:27:04 阅读:325425 作者:VOWO

本文目录一览:

求一段php防mysql注入病毒代码。

//POST过滤安全

$_POST=check_input($_POST);

function check_input($value)

{

if(get_magic_quotes_gpc()){

$value = htmlspecialchars(trim($value));

} else {

$value = addslashes(htmlspecialchars(trim($value)));

}

return $value;

}

另一种如下:PHP整站防注入程序,需要在公共文件中require_once本文件

?PHP

//判断magic_quotes_gpc状态

if (@get_magic_quotes_gpc ()) {

$_GET = sec ( $_GET );

$_POST = sec ( $_POST );

$_COOKIE = sec ( $_COOKIE );

$_FILES = sec ( $_FILES );

}

$_SERVER = sec ( $_SERVER );

function sec($array) {

//如果是数组,遍历数组,递归调用

if (is_array ( $array )) {

foreach ( $array as $k = $v ) {

$array [$k] = sec ( $v );

}

} else if (is_string ( $array )) {

//使用addslashes函数来处理

$array = addslashes ( $array );

} else if (is_numeric ( $array )) {

$array = intval ( $array );

}

return $array;

}

//整型过滤函数

function num_check($id) {

if (! $id) {

die ( '参数不能为空!' );

} //是否为空的判断

else if (inject_check ( $id )) {

die ( '非法参数' );

} //注入判断

else if (! is_numetic ( $id )) {

die ( '非法参数' );

}

//数字判断

$id = intval ( $id );

//整型化

return $id;

}

//字符过滤函数

function str_check($str) {

if (inject_check ( $str )) {

die ( '非法参数' );

}

//注入判断

$str = htmlspecialchars ( $str );

//转换html

return $str;

}

function search_check($str) {

$str = str_replace ( "_", "_", $str );

//把"_"过滤掉

$str = str_replace ( "%", "%", $str );

//把"%"过滤掉

$str = htmlspecialchars ( $str );

//转换html

return $str;

}

//表单过滤函数

function post_check($str, $min, $max) {

if (isset ( $min ) strlen ( $str ) $min) {

die ( '最少$min字节' );

} else if (isset ( $max ) strlen ( $str ) $max) {

die ( '最多$max字节' );

}

return stripslashes_array ( $str );

}

//防注入函数

function inject_check($sql_str) {

return eregi ( 'select|inert|update|delete|'|/*|*|../|./|UNION|into|load_file|outfile', $sql_str );

}

function stripslashes_array($array) {

if (is_array ( $array )) {

foreach ( $array as $k = $v ) {

$array [$k] = stripslashes_array ( $v );

}

} else if (is_string ( $array )) {

$array = stripslashes ( $array );

}

return $array;

}

?

mysql怎么防注入

mysql 可以使用更安全的pdo_mysql接口来处理

所有的查询参数话绑定

$sql = 'select * from table where id=:id';

$pdo-prepare($sql)-bindValue(':id', $id, PDO::PARAM_INT)-excute();

$pdo-fetch(); 来获取数据 这样可以很有效的避免被注入

PHP MySQL 防注入代码

array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);

这个方法里面的第一个参数不是数组,这很明显的说了啊。

$HTTP_POST_VARS是一个全局变量用于接受post过来的值

检查一下这里应该能找到问题所在

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。