php简单实现sql防注入的方法。具体如下:
这里没有太多的过滤,主要是针对php和mysql的组合。
一般性的防注入,只要使用php的 addslashes 函数就可以了。
以下是一段copy来的代码:
PHP代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$_POST = sql_injection( $_POST ); $_GET = sql_injection( $_GET ); { if (!get_magic_quotes_gpc()) { if ( is_array ( $content )) { foreach ( $content as $key => $value ) { $content [ $key ] = addslashes ( $value ); } } else { addslashes ( $content ); } } return $content ; } |
做系统的话,可以用下面的代码,也是copy来的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
function inject_check( $sql_str ) { return eregi ( 'select|insert|update|delete|'|/*|*|../|./|union|into|load_file|outfile' , $sql_str ); // 进行过滤 } function verify_id( $id =null) { if (! $id ) { exit ( '没有提交参数!' ); } // 是否为空判断 elseif (inject_check( $id )) { exit ( '提交的参数非法!' ); } // 注射判断 elseif (! is_numeric ( $id )) { exit ( '提交的参数非法!' ); } // 数字判断 $id = intval ( $id ); // 整型化 return $id ; } function str_check( $str ) { if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否打开 $str = addslashes ( $str ); // 进行过滤 } $str = str_replace ( "_" , "_" , $str ); // 把 '_'过滤掉 $str = str_replace ( "%" , "%" , $str ); // 把 '%'过滤掉 return $str ; } function post_check( $post ) { if (!get_magic_quotes_gpc()) { // 判断magic_quotes_gpc是否为打开 $post = addslashes ( $post ); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤 } $post = str_replace ( "_" , "_" , $post ); // 把 '_'过滤掉 $post = str_replace ( "%" , "%" , $post ); // 把 '%'过滤掉 $post = nl2br ( $post ); // 回车转换 return $post ; } |
© 版权声明
本文刊载的所有内容,包括文字、图片、音频、视频、软件、程序、以及网页版式设计等部门来源于互联网,版权均归原作者所有!本网站提供的内容服务于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。
联系信息:邮箱aoxolcom@163.com或见网站底部。
联系信息:邮箱aoxolcom@163.com或见网站底部。
THE END
请登录后发表评论
注册
社交帐号登录