ホームページ >バックエンド開発 >PHPチュートリアル >asp.net アンチインジェクションは比較的使いやすい PHP アンチインジェクション脆弱性フィルタリング関数コード
コードをコピーします コードは次のとおりです:
//PHP サイト全体のアンチインジェクション プログラム、パブリック ファイルにこのファイルを require_once する必要があります
//magic_quotes_gpc ステータスを判断します
if (@get_magic_quotes_gpc ()) {
$_GET = 秒 ( $_GET );
$_COOKIE = 秒 ( $_COOKIE );
$_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 ( 'illegalparameter' );
// 数値判定
$id = intval ( $id );
return $id;
}
//文字フィルタ関数
function str_check($str) {
if (inject_check ( $str )) {
die ( 'illegalparameter' )
// インジェクション判定
$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 バイト' );
returntripslashes_array ( $str ); /アンチインジェクション関数
function inject_check( $sql_str) {
return eregi ( 'select|inert|update|delete|'|/*|*|../|./|UNION|into|load_file|outfile', $ sql_str );
// インジェクションを防ぐための www.jb51 .net フィルタリング
}
functiontripslashes_array(&$array) {
if (is_array ( $array )) {
foreach ( $array as $k => $v ) {
$array [$k] = ストリップスラッシュ ( $v );
}
} else if (is_string ( $array )) {
$array = ストリップスラッシュ ( $array );
return $array; >
以上、asp.net アンチインジェクションの内容も含め、比較的使いやすい PHP アンチインジェクション脆弱性フィルタリング関数コードを紹介しましたので、PHP に興味のある友人の参考になれば幸いです。チュートリアル。